1 <?xml version="1.0" encoding="utf-8"?> 2 <!-- Copyright (C) 2012 The Android Open Source Project 3 4 Licensed under the Apache License, Version 2.0 (the "License"); 5 you may not use this file except in compliance with the License. 6 You may obtain a copy of the License at 7 8 http://www.apache.org/licenses/LICENSE-2.0 9 10 Unless required by applicable law or agreed to in writing, software 11 distributed under the License is distributed on an "AS IS" BASIS, 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 See the License for the specific language governing permissions and 14 limitations under the License. 15 --> 16 17 <!-- XML resource file for primary call info, which will be used by CallCard. 18 See also call_card.xml. --> 19 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 20 android:layout_width="match_parent" 21 android:layout_height="0dp" 22 android:layout_weight="1"> 23 24 <!-- Contact photo for primary call info --> 25 <ImageView android:id="@+id/photo" 26 android:layout_alignParentStart="true" 27 android:layout_alignParentTop="true" 28 android:layout_width="match_parent" 29 android:layout_height="match_parent" 30 android:gravity="top|center_horizontal" 31 android:scaleType="centerCrop" 32 android:contentDescription="@string/contactPhoto" /> 33 34 <!-- Used when the phone call is on hold, dimming the primary photo 35 36 Note: Theoretically it is possible to achieve this effect using 37 Drawable#setColorFilter(). 38 39 But watch out: we also use cross fade between primary and 40 secondary photo, which may interfere with the dim effect with 41 setColorFilter(). To try it out, use GSM phones and do multiple 42 calls. 43 44 Detail: during the cross-fade effect we are currently using 45 TransitionDrawable. TransitionDrawable#setColorFilter() will call 46 the equivalent method for *both* drawables which are shared by 47 the two ImageViews. If we set setColorFilter() for "on hold" effect 48 during the cross-fade, *both* primary and secondary photos become 49 dim. 50 51 Theoretically it can be avoided (by copying drawable, or carefully 52 calling setColorFilter() conditionally. But it doesn't bang for the 53 buck for now. 54 55 TODO: try that. It may be smoother with slower devices. 56 --> 57 <View android:id="@+id/dim_effect_for_primary_photo" 58 android:layout_alignParentStart="true" 59 android:layout_alignParentTop="true" 60 android:layout_width="match_parent" 61 android:layout_height="match_parent" 62 android:background="@color/on_hold_dim_effect" 63 android:visibility="gone" /> 64 65 <!-- "Call Banner" for primary call, the foregound or ringing call. 66 The "call banner" is a block of info about a single call, 67 including the contact name, phone number, call time counter, 68 and other status info. This info is shown as a "banner" 69 overlaid across the top of contact photo. --> 70 <RelativeLayout android:id="@+id/primary_call_banner" 71 style="@style/PrimaryCallInfoPrimaryCallBanner" 72 android:layout_width="match_parent" 73 android:layout_height="wrap_content" 74 android:minHeight="@dimen/call_banner_height" 75 android:paddingStart="@dimen/call_banner_side_padding" 76 android:paddingEnd="@dimen/call_banner_side_padding" 77 android:paddingTop="@dimen/call_banner_top_bottom_padding" 78 android:paddingBottom="@dimen/call_banner_top_bottom_padding" 79 android:background="@color/incall_call_banner_background"> 80 81 <!-- Name (or the phone number, if we don't have a name to display). --> 82 <TextView android:id="@+id/name" 83 android:layout_alignParentTop="true" 84 android:layout_alignParentStart="true" 85 android:layout_width="match_parent" 86 android:layout_height="wrap_content" 87 android:paddingEnd="@dimen/call_banner_name_number_right_padding" 88 android:textAppearance="?android:attr/textAppearanceMedium" 89 android:textColor="@color/incall_call_banner_text_color" 90 android:singleLine="true" 91 android:textAlignment="viewStart"/> 92 93 <!-- Label (like "Mobile" or "Work", if present) and phone number, side by side --> 94 <LinearLayout android:id="@+id/labelAndNumber" 95 android:layout_below="@id/name" 96 android:layout_width="wrap_content" 97 android:layout_height="wrap_content" 98 android:paddingEnd="@dimen/call_banner_name_number_right_padding" 99 android:orientation="horizontal"> 100 <TextView android:id="@+id/phoneNumber" 101 android:layout_width="wrap_content" 102 android:layout_height="wrap_content" 103 android:textAppearance="?android:attr/textAppearanceSmall" 104 android:textColor="@color/incall_call_banner_text_color" 105 android:singleLine="true" 106 android:textDirection="ltr" /> 107 <TextView android:id="@+id/label" 108 android:layout_width="wrap_content" 109 android:layout_height="wrap_content" 110 android:textAppearance="?android:attr/textAppearanceSmall" 111 android:textColor="@color/incall_call_banner_text_color" 112 android:textAllCaps="true" 113 android:singleLine="true" 114 android:layout_marginStart="6dp" /> 115 </LinearLayout> 116 117 <!-- Elapsed time indication for a call in progress. --> 118 <TextView android:id="@+id/elapsedTime" 119 android:layout_alignParentEnd="true" 120 android:layout_centerVertical="true" 121 android:layout_width="wrap_content" 122 android:layout_height="wrap_content" 123 android:textAppearance="?android:attr/textAppearanceMedium" 124 android:textColor="@color/incall_call_banner_text_color" 125 android:singleLine="true" 126 android:visibility="invisible" /> 127 128 <!-- Call type indication: a special label and/or branding 129 for certain kinds of calls (like "Internet call" for a SIP call.) --> 130 <TextView android:id="@+id/callTypeLabel" 131 android:layout_below="@id/labelAndNumber" 132 android:layout_width="wrap_content" 133 android:layout_height="wrap_content" 134 android:textAppearance="?android:attr/textAppearanceSmall" 135 android:textColor="@color/incall_call_banner_text_color" 136 android:maxLines="1" 137 android:ellipsize="end" /> 138 139 </RelativeLayout> <!-- End of call_banner --> 140 141 <LinearLayout android:id="@+id/secondary_info_container" 142 style="@style/PrimaryCallInfoSecondaryInfoContainer" 143 android:layout_width="match_parent" 144 android:layout_height="wrap_content" 145 android:layout_gravity="center_vertical|right" 146 android:orientation="vertical" 147 android:background="@color/incall_secondary_info_background" 148 android:animateLayoutChanges="true"> 149 150 <!-- Shown when a gateway provider is used during any outgoing call. --> 151 <LinearLayout android:id="@+id/providerInfo" 152 android:layout_width="match_parent" 153 android:layout_height="wrap_content" 154 android:paddingTop="@dimen/provider_info_top_bottom_padding" 155 android:paddingBottom="@dimen/provider_info_top_bottom_padding" 156 android:paddingStart="@dimen/call_banner_side_padding" 157 android:paddingEnd="@dimen/call_banner_side_padding" 158 android:gravity="end" 159 android:orientation="horizontal" 160 android:background="@android:color/transparent"> 161 <TextView android:id="@+id/providerLabel" 162 android:layout_width="0px" 163 android:layout_height="wrap_content" 164 android:layout_weight="6" 165 android:textAppearance="?android:attr/textAppearanceSmall" 166 android:textAllCaps="true" 167 android:textColor="@color/incall_call_banner_text_color" 168 android:singleLine="true" 169 android:ellipsize="marquee" /> 170 <TextView android:id="@+id/providerAddress" 171 android:layout_width="0px" 172 android:layout_height="wrap_content" 173 android:layout_weight="4" 174 android:gravity="end" 175 android:paddingStart="8dp" 176 android:textAppearance="?android:attr/textAppearanceSmall" 177 android:textAllCaps="true" 178 android:textColor="@color/incall_call_banner_text_color" 179 android:singleLine="true" 180 android:ellipsize="middle" /> 181 </LinearLayout> 182 183 <!-- The "call state label": In some states, this shows a special 184 indication like "Dialing" or "Incoming call" or "Call ended". 185 It's unused for the normal case of an active ongoing call. --> 186 <TextView android:id="@+id/callStateLabel" 187 android:layout_width="match_parent" 188 android:layout_height="wrap_content" 189 android:paddingTop="@dimen/provider_info_top_bottom_padding" 190 android:paddingBottom="@dimen/provider_info_top_bottom_padding" 191 android:paddingStart="@dimen/call_banner_side_padding" 192 android:paddingEnd="@dimen/call_banner_side_padding" 193 android:gravity="end" 194 android:textAppearance="?android:attr/textAppearanceSmall" 195 android:textColor="@color/incall_call_banner_text_color" 196 android:textAllCaps="true" 197 android:background="@android:color/transparent" 198 android:singleLine="true" 199 android:ellipsize="end" /> 200 </LinearLayout> 201 202 <!-- Social status (currently unused) --> 203 <!-- <TextView android:id="@+id/socialStatus" 204 android:layout_below="@id/callTypeLabel" 205 android:layout_width="wrap_content" 206 android:layout_height="wrap_content" 207 android:textAppearance="?android:attr/textAppearanceSmall" 208 android:textColor="@color/incall_call_banner_text_color" 209 android:maxLines="2" 210 android:ellipsize="end" 211 /> --> 212 </RelativeLayout> 213