1<?xml version="1.0" encoding="utf-8"?>
2<!--
3**
4** Copyright 2006, The Android Open Source Project
5**
6** Licensed under the Apache License, Version 2.0 (the "License");
7** you may not use this file except in compliance with the License.
8** You may obtain a copy of the License at
9**
10**     http://www.apache.org/licenses/LICENSE-2.0
11**
12** Unless required by applicable law or agreed to in writing, software
13** distributed under the License is distributed on an "AS IS" BASIS,
14** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15** See the License for the specific language governing permissions and
16** limitations under the License.
17*/
18-->
19
20<!--    android:background="@drawable/status_bar_closed_default_background" -->
21<com.android.systemui.statusbar.phone.PhoneStatusBarView
22    xmlns:android="http://schemas.android.com/apk/res/android"
23    xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui"
24    android:layout_width="match_parent"
25    android:layout_height="@dimen/status_bar_height"
26    android:id="@+id/status_bar"
27    android:orientation="vertical"
28    android:focusable="false"
29    android:descendantFocusability="afterDescendants"
30    android:accessibilityPaneTitle="@string/status_bar"
31    >
32
33    <ImageView
34        android:id="@+id/notification_lights_out"
35        android:layout_width="@dimen/status_bar_icon_size_sp"
36        android:layout_height="match_parent"
37        android:paddingStart="@dimen/status_bar_padding_start"
38        android:paddingBottom="2dip"
39        android:src="@drawable/ic_sysbar_lights_out_dot_small"
40        android:scaleType="center"
41        android:visibility="gone"
42        />
43
44    <LinearLayout android:id="@+id/status_bar_contents"
45        android:layout_width="match_parent"
46        android:layout_height="match_parent"
47        android:clipChildren="false"
48        android:clipToPadding="false"
49        android:paddingStart="@dimen/status_bar_padding_start"
50        android:paddingEnd="@dimen/status_bar_padding_end"
51        android:paddingTop="@dimen/status_bar_padding_top"
52        android:orientation="horizontal">
53
54        <!-- Container for the entire start half of the status bar. It will always use the same
55             width, independent of the number of visible children and sub-children. -->
56        <FrameLayout
57            android:id="@+id/status_bar_start_side_container"
58            android:layout_height="match_parent"
59            android:layout_width="0dp"
60            android:clipChildren="false"
61            android:layout_weight="1">
62
63            <!-- Container that is wrapped around the views on the start half of the status bar.
64                 Its width will change with the number of visible children and sub-children.
65                 It is useful when we want to know the visible bounds of the content. -->
66            <FrameLayout
67                android:id="@+id/status_bar_start_side_content"
68                android:layout_width="wrap_content"
69                android:layout_height="match_parent"
70                android:layout_gravity="center_vertical|start"
71                android:clipChildren="false">
72
73                <include layout="@layout/heads_up_status_bar_layout" />
74
75                <!-- The alpha of the start side is controlled by PhoneStatusBarTransitions, and the
76                     individual views are controlled by StatusBarManager disable flags DISABLE_CLOCK
77                     and DISABLE_NOTIFICATION_ICONS, respectively -->
78                <LinearLayout
79                    android:id="@+id/status_bar_start_side_except_heads_up"
80                    android:layout_height="match_parent"
81                    android:layout_width="match_parent"
82                    android:layout_gravity="center_vertical|start"
83                    android:clipChildren="false">
84                    <ViewStub
85                        android:id="@+id/operator_name_stub"
86                        android:layout_width="wrap_content"
87                        android:layout_height="match_parent"
88                        android:layout="@layout/operator_name" />
89
90                    <com.android.systemui.statusbar.policy.Clock
91                        android:id="@+id/clock"
92                        android:layout_width="wrap_content"
93                        android:layout_height="@dimen/status_bar_system_icons_height"
94                        android:layout_gravity="center_vertical"
95                        android:textAppearance="@style/TextAppearance.StatusBar.Clock"
96                        android:singleLine="true"
97                        android:paddingStart="@dimen/status_bar_left_clock_starting_padding"
98                        android:paddingEnd="@dimen/status_bar_left_clock_end_padding"
99                        android:gravity="center_vertical|start"
100                    />
101
102                    <include layout="@layout/ongoing_activity_chip" />
103
104                    <com.android.systemui.statusbar.AlphaOptimizedFrameLayout
105                        android:id="@+id/notification_icon_area"
106                        android:layout_width="wrap_content"
107                        android:layout_height="match_parent"
108                        android:orientation="horizontal"
109                        android:clipChildren="false"/>
110
111                </LinearLayout>
112            </FrameLayout>
113        </FrameLayout>
114
115        <!-- Space should cover the notch (if it exists) and let other views lay out around it -->
116        <android.widget.Space
117            android:id="@+id/cutout_space_view"
118            android:layout_width="0dp"
119            android:layout_height="match_parent"
120            android:gravity="center_horizontal|center_vertical"
121        />
122
123        <!-- Container for the entire end half of the status bar. It will always use the same
124             width, independent of the number of visible children and sub-children. -->
125        <FrameLayout
126            android:id="@+id/status_bar_end_side_container"
127            android:layout_width="0dp"
128            android:layout_height="match_parent"
129            android:layout_weight="1"
130            android:clipChildren="false">
131
132            <!-- Container that is wrapped around the views on the end half of the
133                 status bar. Its width will change with the number of visible children and
134                 sub-children.
135                 It is useful when we want know the visible bounds of the content.-->
136            <com.android.keyguard.AlphaOptimizedLinearLayout
137                android:id="@+id/status_bar_end_side_content"
138                android:layout_width="wrap_content"
139                android:layout_height="match_parent"
140                android:layout_gravity="end"
141                android:orientation="horizontal"
142                android:gravity="center_vertical|end"
143                android:clipChildren="false">
144
145                <include
146                    android:id="@+id/user_switcher_container"
147                    android:layout_width="wrap_content"
148                    android:layout_height="wrap_content"
149                    android:layout_marginEnd="@dimen/status_bar_user_chip_end_margin"
150                    layout="@layout/status_bar_user_chip_container" />
151
152                <include layout="@layout/system_icons"
153                     android:layout_gravity="center_vertical"
154                     android:layout_width="wrap_content"
155                     android:layout_height="@dimen/status_bar_system_icons_height" />
156            </com.android.keyguard.AlphaOptimizedLinearLayout>
157        </FrameLayout>
158    </LinearLayout>
159
160</com.android.systemui.statusbar.phone.PhoneStatusBarView>
161