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

<!-- XML resource file for the *children* of a CallCard used in the Phone app.
     The CallCard itself is a subclass of FrameLayout, and its (single)
     child is the LinearLayout found here.  (In the CallCard constructor,
     we inflate this file and add it as a child.)

     Note that the CallCard is technically the size of the full screen (since
     our parent container is full-screen, and the layout_width and layout_height
     here are both "match_parent"), but we manually adjust its bottom margin
     in CallCard.updateCallInfoLayout() to make sure it doesn't overlap with
     the onscreen buttons from incall_touch_ui.xml. -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/call_info_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

    <!-- The main content of the CallCard is either one or two "call info"
         blocks, depending on whether one or two lines are in use.

         The call_info blocks are stacked vertically inside a LinearLayout,
         each with layout_weight="1".  If only one line is in use (i.e. the
         common case) then the 2nd call info will be GONE and thus the 1st one
         will expand to fill the full height of the CallCard.

         We set a bottom margin on this element dynamically (see
         updateCallInfoLayout()) to make sure it doesn't overlap with either
         the bottom button cluster or the incoming-call widget. -->

    <!-- TODO (XML cleanup): Currently, every View of the entire CallCard
         UI is spelled out here in this XML file.

         This is because the the in-call visual design is still in
         flux, and it's easier to shuffle layouts around this way
         rather than having sub-components in separate XML files.

         But once the in-call visual design is final, let's
         rearrange this XML to be more object-oriented:

         - Have the "call banners" (or at least the banner for call
           #1) come from separate XML files that get <include>d when
           needed.  Consider making "CallBanner" an actual widget.

           (Note: if we end up including the same XML file multiple
           times, like for both call banners, we won't have separate
           XML ids for (for example) "name" and "secondaryCallName".
           So CallCard.java will need to look up those views
           separately by calling findViewById on the specific
           container around each banner.)

         - Move any remaining hardcoded margin / padding / size
           constants (both here and in incall_touch_ui.xml) out to
           dimens.xml or styles.xml.
    -->

    <!-- "Call info" block #1, for the foreground call. -->
    <RelativeLayout android:id="@+id/call_info_1"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        >

        <!-- Contact photo for call_info_1 -->
        <com.android.phone.InCallContactPhoto android:id="@+id/photo"
                   android:layout_alignParentTop="true"
                   android:layout_width="match_parent"
                   android:layout_height="match_parent"
                   android:gravity="top|center_horizontal"
                   android:scaleType="centerCrop"
                   android:contentDescription="@string/contactPhoto"
                   />

        <!-- "Call Banner" for call #1, the foregound or ringing call.
             The "call banner" is a block of info about a single call,
             including the contact name, phone number, call time counter,
             and other status info.  This info is shown as a "banner"
             overlaid across the top of contact photo. -->
        <RelativeLayout android:id="@+id/call_banner_1"
            android:layout_alignParentTop="true"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:minHeight="@dimen/call_banner_height"
            android:paddingLeft="@dimen/call_banner_side_padding"
            android:paddingRight="@dimen/call_banner_side_padding"
            android:paddingTop="@dimen/call_banner_top_bottom_padding"
            android:paddingBottom="@dimen/call_banner_top_bottom_padding"
            android:background="@color/incall_call_banner_background"
            >

            <!-- Name (or the phone number, if we don't have a name to display). -->
            <TextView android:id="@+id/name"
                      android:layout_alignParentTop="true"
                      android:layout_alignParentLeft="true"
                      android:layout_width="match_parent"
                      android:layout_height="wrap_content"
                      android:paddingRight="@dimen/call_banner_name_number_right_padding"
                      android:textAppearance="?android:attr/textAppearanceMedium"
                      android:textColor="@color/incall_call_banner_text_color"
                      android:singleLine="true"
                      />

            <!-- Label (like "Mobile" or "Work", if present) and phone number, side by side -->
            <LinearLayout android:id="@+id/labelAndNumber"
                          android:layout_below="@id/name"
                          android:layout_width="wrap_content"
                          android:layout_height="wrap_content"
                          android:paddingRight="@dimen/call_banner_name_number_right_padding"
                          android:orientation="horizontal"
                          >
                <TextView android:id="@+id/phoneNumber"
                          android:layout_width="wrap_content"
                          android:layout_height="wrap_content"
                          android:textAppearance="?android:attr/textAppearanceSmall"
                          android:textColor="@color/incall_call_banner_text_color"
                          android:singleLine="true"
                          />
                <TextView android:id="@+id/label"
                          android:layout_width="wrap_content"
                          android:layout_height="wrap_content"
                          android:textAppearance="?android:attr/textAppearanceSmall"
                          android:textColor="@color/incall_call_banner_text_color"
                          android:textAllCaps="true"
                          android:singleLine="true"
                          android:layout_marginLeft="6dip"
                          />
            </LinearLayout>

            <!-- Elapsed time indication for a call in progress. -->
            <TextView android:id="@+id/elapsedTime"
                      android:layout_alignParentRight="true"
                      android:layout_centerVertical="true"
                      android:layout_width="wrap_content"
                      android:layout_height="wrap_content"
                      android:textAppearance="?android:attr/textAppearanceMedium"
                      android:textColor="@color/incall_call_banner_text_color"
                      android:singleLine="true"
                      />

            <!-- Call type indication: a special label and/or branding
                 for certain kinds of calls (like "Internet call" for a SIP call.) -->
            <TextView android:id="@+id/callTypeLabel"
                      android:layout_below="@id/labelAndNumber"
                      android:layout_width="wrap_content"
                      android:layout_height="wrap_content"
                      android:textAppearance="?android:attr/textAppearanceSmall"
                      android:textColor="@color/incall_call_banner_text_color"
                      android:maxLines="1"
                      android:ellipsize="end"
                      />

            <!-- Social status (currently unused) -->
            <TextView android:id="@+id/socialStatus"
                      android:layout_below="@id/callTypeLabel"
                      android:layout_width="wrap_content"
                      android:layout_height="wrap_content"
                      android:textAppearance="?android:attr/textAppearanceSmall"
                      android:textColor="@color/incall_call_banner_text_color"
                      android:maxLines="2"
                      android:ellipsize="end"
                      />

        </RelativeLayout>  <!-- End of call_banner for call_info #1. -->

        <!-- "Inset" photo used with "id/photo" above:
               When the contact photo is a lo-res thumbnail, id/photo
             contains a scaled-up but *blurred* version of the photo, and
             *this* ImageView is overlaid on top as a smaller, unblurred
             inset.  (See InCallContactPhoto.java.)
               The top of the inset is vertically aligned with the bottom
             of the call banner.  (Note that means that in states where the
             "call state label" is visible, the label (see below) will overlap
             the top of the inset photo.)  -->
        <ImageView android:id="@+id/insetPhoto"
            android:layout_below="@id/call_banner_1"
            android:layout_width="@dimen/contact_photo_inset_width"
            android:layout_height="@dimen/contact_photo_inset_height"
            android:scaleType="centerCrop"
            android:layout_marginLeft="@dimen/contact_photo_inset_left_margin"
            />

        <!-- The "call state label": In some states, this shows a special
             indication like "Dialing" or "Incoming call" or "Call ended".
             It's unused for the normal case of an active ongoing call. -->
        <!-- This is visually part of the call banner, but it's not actually
             part of the "call_banner_1" RelativeLayout since it needs a
             different background color. -->
        <TextView android:id="@+id/callStateLabel"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/call_banner_1"
            android:gravity="right"
            android:paddingTop="8dp"
            android:paddingBottom="8dp"
            android:paddingRight="@dimen/call_banner_side_padding"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:textColor="@color/incall_call_banner_text_color"
            android:textAllCaps="true"
            android:background="@color/incall_call_state_label_background"
            android:visibility="gone"
            />

    </RelativeLayout>


    <!-- call_info block #2, for the background ("on hold") call.
         If only one line is in use, this whole block will have its
         visibility set to GONE. -->
    <RelativeLayout android:id="@+id/call_info_2"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        >

        <!-- Contact photo for call_info #2 -->
        <com.android.phone.InCallContactPhoto android:id="@+id/secondaryCallPhoto"
                   android:layout_alignParentTop="true"
                   android:layout_width="match_parent"
                   android:layout_height="match_parent"
                   android:gravity="top|center_horizontal"
                   android:scaleType="centerCrop"
                   android:contentDescription="@string/onHold"
                   />
        <!-- For now, at least, there's no "inset" photo used with
             "id/secondaryCallPhoto".  (That's the "on hold" call anyway,
             so it's fine for it to be entirely blurry...) -->

        <!-- call_banner for call_info #2 -->
        <!-- Note this is much simpler than the call banner used
             for the foreground call. -->
        <RelativeLayout android:id="@+id/call_banner_2"
            android:layout_alignParentTop="true"
            android:layout_width="match_parent"
            android:layout_height="@dimen/call_banner_height"
            android:paddingLeft="@dimen/call_banner_side_padding"
            android:paddingRight="@dimen/call_banner_side_padding"
            android:paddingTop="@dimen/call_banner_top_bottom_padding"
            android:paddingBottom="@dimen/call_banner_top_bottom_padding"
            android:background="@color/incall_call_banner_background"
            >
            <!-- Name (or the phone number, if we don't have a name to display). -->
            <TextView android:id="@+id/secondaryCallName"
                      android:layout_alignParentTop="true"
                      android:layout_alignParentLeft="true"
                      android:layout_width="wrap_content"
                      android:layout_height="wrap_content"
                      android:textAppearance="?android:attr/textAppearanceMedium"
                      android:textColor="@color/incall_call_banner_text_color"
                      android:singleLine="true"
                      />
            <!-- TODO: possibly also add a label + number field below the name? -->

            <!-- Call status of the background call, usually the string "On hold". -->
            <!-- TODO: figure out where this really belongs! -->
            <TextView android:id="@+id/secondaryCallStatus"
                      android:layout_alignParentTop="true"
                      android:layout_alignParentRight="true"
                      android:layout_width="wrap_content"
                      android:layout_height="wrap_content"
                      android:text="@string/onHold"
                      android:textAppearance="?android:attr/textAppearanceSmall"
                      android:textColor="@color/incall_call_banner_text_color"
                      android:textAllCaps="true"
                      android:singleLine="true"
                      />

        </RelativeLayout>

    </RelativeLayout>

</LinearLayout>
