Daniel Sandler b6d3dc6897 Implement new lights-out mode in system bar.
When an app requests fullscreen display, "shadows" of the
visible system bar UI elements are drawn in their place. The
user can still interact with these elements by poking the
shadows; the widgets will temporarily shine through, long
enough for the user interaction.

Known issues:
 - if the notification panel is up for too long, the shadow
   will not be re-enabled on the notification area (need to
   route all hide/show requests through the
   shadowcontroller)
 - status bar hide/show animations have been temporarily
   turned off to make this work correctly; they'll be put
   back later

Bug: 3203171
2010-11-17 16:51:26 -05:00

247 lines
10 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!--
* Copyright (C) 2010 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.
-->
<!-- android:background="@drawable/status_bar_closed_default_background" -->
<com.android.systemui.statusbar.tablet.TabletStatusBarView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui"
android:background="@drawable/status_bar_background"
>
<RelativeLayout
android:id="@+id/bar_contents"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="false"
>
<!-- ticker: transient incoming notification information -->
<FrameLayout
android:id="@+id/ticker"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_toRightOf="@+id/systemInfo"
android:paddingLeft="6dip"
android:gravity="center_vertical"
android:animateLayoutChanges="true"
/>
<!-- notification icons & panel access -->
<LinearLayout
android:id="@+id/notificationArea"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:orientation="horizontal"
>
<com.android.systemui.statusbar.tablet.NotificationIconArea
android:id="@+id/notificationIcons"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:orientation="horizontal"
>
<view
class="com.android.systemui.statusbar.tablet.NotificationIconArea$IconLayout"
android:id="@+id/icons"
android:layout_width="wrap_content"
android:layout_height="@*android:dimen/status_bar_icon_size"
android:layout_marginLeft="8dip"
/>
</com.android.systemui.statusbar.tablet.NotificationIconArea>
<LinearLayout
android:id="@+id/notificationTrigger"
android:layout_width="wrap_content"
android:layout_height="match_parent"
>
<!-- paddingLeft: 24 dips = 32dp (total space to icon) - 8dp in the icon.
TODO: Make sure the font has a small enough leading that we don't need this
negative margin business. -->
<com.android.systemui.statusbar.policy.Clock
style="@*android:style/TextAppearance.StatusBar.Icon"
android:id="@+id/clock"
android:layout_width="wrap_content"
android:layout_height="65dp"
android:layout_marginTop="-17dp"
android:singleLine="true"
android:textSize="60sp"
android:paddingLeft="24dip"
android:textColor="#2e2e2e"
/>
<LinearLayout
android:layout_width="48dip"
android:layout_height="match_parent"
android:orientation="horizontal"
>
<ImageView
android:id="@+id/battery"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center_vertical"
/>
<ImageView
android:id="@+id/network"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center_vertical"
android:src="@drawable/ic_sysbar_wifi_mini"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<!-- navigation controls -->
<LinearLayout
android:id="@+id/navigationArea"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:orientation="horizontal"
android:animateLayoutChanges="false"
>
<com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/back"
android:layout_width="96dip"
android:layout_height="match_parent"
android:paddingLeft="18dip"
android:paddingRight="18dip"
android:src="@drawable/ic_sysbar_back"
android:background="@drawable/ic_sysbar_icon_bg"
systemui:keyCode="4"
/>
<com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/home"
android:layout_width="96dip"
android:layout_height="match_parent"
android:paddingLeft="18dip"
android:paddingRight="18dip"
android:src="@drawable/ic_sysbar_home"
android:background="@drawable/ic_sysbar_icon_bg"
systemui:keyCode="3"
/>
<ImageButton android:id="@+id/recent_apps"
android:layout_width="96dip"
android:layout_height="match_parent"
android:src="@drawable/ic_sysbar_recent"
android:background="@drawable/ic_sysbar_icon_bg"
android:paddingLeft="18dip"
android:clickable="true"
android:paddingRight="18dip"
/>
<com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/menu"
android:layout_width="96dip"
android:layout_height="match_parent"
android:paddingLeft="18dip"
android:paddingRight="18dip"
android:src="@drawable/ic_sysbar_menu"
android:background="@drawable/ic_sysbar_icon_bg"
systemui:keyCode="82"
android:visibility="invisible"
/>
<com.android.systemui.statusbar.tablet.ShirtPocket
android:id="@+id/pocket"
android:layout_width="96dip"
android:layout_height="match_parent"
android:background="@drawable/ic_sysbar_icon_bg"
android:paddingLeft="18dip"
android:paddingRight="18dip"
android:animateLayoutChanges="true"
android:clickable="true"
android:descendantFocusability="blocksDescendants"
android:gravity="center"
>
<ImageView
android:id="@+id/pocket_icon"
android:src="@drawable/ic_sysbar_pocket"
android:visibility="invisible"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
/>
</com.android.systemui.statusbar.tablet.ShirtPocket>
<com.android.systemui.statusbar.tablet.InputMethodButton
android:id="@+id/imeButton"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="8dip"
android:src="@drawable/ic_sysbar_ime_default"
android:background="@drawable/ic_sysbar_icon_bg"
android:visibility="invisible"
/>
</LinearLayout>
<!-- lights out mode: "shadow" views -->
<ImageView
android:id="@+id/notification_shadow"
android:layout_width="176dip"
android:layout_height="match_parent"
android:paddingRight="48dip"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:src="@drawable/ic_sysbar_shadow"
android:visibility="gone"
android:scaleType="fitXY"
/>
<ImageView
android:id="@+id/back_shadow"
android:layout_width="96dip"
android:layout_height="match_parent"
android:paddingLeft="18dip"
android:paddingRight="18dip"
android:layout_alignParentLeft="true"
android:layout_alignParentBottom="true"
android:src="@drawable/ic_sysbar_shadow"
android:visibility="gone"
/>
<ImageView
android:id="@+id/home_shadow"
android:layout_width="96dip"
android:layout_height="match_parent"
android:paddingLeft="18dip"
android:paddingRight="18dip"
android:layout_toRightOf="@id/back_shadow"
android:layout_alignParentBottom="true"
android:src="@drawable/ic_sysbar_shadow"
android:visibility="gone"
/>
<ImageView
android:id="@+id/recent_shadow"
android:layout_width="96dip"
android:layout_height="match_parent"
android:paddingLeft="18dip"
android:paddingRight="18dip"
android:layout_toRightOf="@id/home_shadow"
android:layout_alignParentBottom="true"
android:src="@drawable/ic_sysbar_shadow"
android:visibility="gone"
/>
<ImageView
android:id="@+id/menu_shadow"
android:layout_width="96dip"
android:layout_height="match_parent"
android:paddingLeft="18dip"
android:paddingRight="18dip"
android:layout_toRightOf="@id/recent_shadow"
android:layout_alignParentBottom="true"
android:src="@drawable/ic_sysbar_shadow"
android:visibility="gone"
/>
</RelativeLayout>
</com.android.systemui.statusbar.tablet.TabletStatusBarView>