diff options
author | Daniel Sandler <dsandler@android.com> | 2011-12-07 17:40:07 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-12-07 17:40:07 -0800 |
commit | 29933fb26a4294a9bd30f9227809e28949252833 (patch) | |
tree | 8b9403689d00425b7148a8ee288cb3681f8f3429 /packages | |
parent | aa2719df72225402737009b1cc2e3cfea8e74bc7 (diff) | |
parent | a3850b68399ab49032e1fc2a2eab129fe3a7e69e (diff) | |
download | frameworks_base-29933fb26a4294a9bd30f9227809e28949252833.zip frameworks_base-29933fb26a4294a9bd30f9227809e28949252833.tar.gz frameworks_base-29933fb26a4294a9bd30f9227809e28949252833.tar.bz2 |
Merge "Improve handling of small largeIcons in tablet ticker." into ics-mr1
Diffstat (limited to 'packages')
-rw-r--r-- | packages/SystemUI/res/layout-sw600dp/status_bar_ticker_panel.xml | 21 | ||||
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletTicker.java | 19 |
2 files changed, 32 insertions, 8 deletions
diff --git a/packages/SystemUI/res/layout-sw600dp/status_bar_ticker_panel.xml b/packages/SystemUI/res/layout-sw600dp/status_bar_ticker_panel.xml index 6cd8899..d51f9c8 100644 --- a/packages/SystemUI/res/layout-sw600dp/status_bar_ticker_panel.xml +++ b/packages/SystemUI/res/layout-sw600dp/status_bar_ticker_panel.xml @@ -15,20 +15,29 @@ * limitations under the License. --> -<LinearLayout +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" - android:orientation="horizontal" - android:gravity="bottom" > + <View + android:layout_height="@*android:dimen/status_bar_height" + android:layout_width="match_parent" + android:background="@drawable/status_bar_ticker_background" + android:layout_alignParentLeft="true" + android:layout_alignParentBottom="true" + android:clickable="false" + /> + <ImageView android:id="@+id/large_icon" android:layout_width="@android:dimen/notification_large_icon_height" android:layout_height="@android:dimen/notification_large_icon_width" android:scaleType="center" android:visibility="gone" + android:layout_alignParentLeft="true" + android:layout_alignParentBottom="true" /> <FrameLayout @@ -36,6 +45,8 @@ android:layout_weight="1" android:layout_height="@*android:dimen/status_bar_height" android:layout_width="match_parent" - android:background="@drawable/status_bar_ticker_background" + android:layout_toRightOf="@id/large_icon" + android:layout_alignParentBottom="true" + android:layout_alignWithParentIfMissing="true" /> -</LinearLayout> +</RelativeLayout> diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletTicker.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletTicker.java index 6045e31..e93a32b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletTicker.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletTicker.java @@ -73,6 +73,8 @@ public class TabletTicker private StatusBarNotification[] mQueue = new StatusBarNotification[QUEUE_LENGTH]; private int mQueuePos; + private final int mLargeIconHeight; + private TabletStatusBar mBar; private LayoutTransition mLayoutTransition; @@ -81,6 +83,9 @@ public class TabletTicker public TabletTicker(TabletStatusBar bar) { mBar = bar; mContext = bar.getContext(); + final Resources res = mContext.getResources(); + mLargeIconHeight = res.getDimensionPixelSize( + android.R.dimen.notification_large_icon_height); } public void add(IBinder key, StatusBarNotification notification) { @@ -209,8 +214,6 @@ public class TabletTicker final Resources res = mContext.getResources(); final FrameLayout view = new FrameLayout(mContext); final int width = res.getDimensionPixelSize(R.dimen.notification_ticker_width); - final int height = res.getDimensionPixelSize( - android.R.dimen.notification_large_icon_height); int windowFlags = WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS; @@ -219,7 +222,7 @@ public class TabletTicker } else { windowFlags |= WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE; } - WindowManager.LayoutParams lp = new WindowManager.LayoutParams(width, height, + WindowManager.LayoutParams lp = new WindowManager.LayoutParams(width, mLargeIconHeight, WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL, windowFlags, PixelFormat.TRANSLUCENT); lp.gravity = Gravity.BOTTOM | Gravity.RIGHT; @@ -297,6 +300,16 @@ public class TabletTicker if (n.largeIcon != null) { largeIcon.setImageBitmap(n.largeIcon); largeIcon.setVisibility(View.VISIBLE); + final ViewGroup.LayoutParams lp = largeIcon.getLayoutParams(); + final int statusBarHeight = mBar.getStatusBarHeight(); + if (n.largeIcon.getHeight() <= statusBarHeight) { + // for smallish largeIcons, it looks a little odd to have them floating halfway up + // the ticker, so we vertically center them in the status bar area instead + lp.height = statusBarHeight; + } else { + lp.height = mLargeIconHeight; + } + largeIcon.setLayoutParams(lp); } if (CLICKABLE_TICKER) { |