Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 29933fb2 authored by Daniel Sandler's avatar Daniel Sandler Committed by Android (Google) Code Review
Browse files

Merge "Improve handling of small largeIcons in tablet ticker." into ics-mr1

parents aa2719df a3850b68
Loading
Loading
Loading
Loading
+16 −5
Original line number Diff line number Diff line
@@ -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>
+16 −3
Original line number Diff line number Diff line
@@ -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) {
+5 −0
Original line number Diff line number Diff line
@@ -605,6 +605,11 @@
                        style="@style/FieldContents"
                        android:text="pineapple2"
                        />
                <RadioButton
                        android:id="@+id/large_icon_small"
                        style="@style/FieldContents"
                        android:text="small"
                        />
            </RadioGroup>
            

+3 −0
Original line number Diff line number Diff line
@@ -287,6 +287,9 @@ public class NotificationBuilderTest extends Activity
            case R.id.large_icon_pineapple2:
                b.setLargeIcon(loadBitmap(R.drawable.pineapple2));
                break;
            case R.id.large_icon_small:
                b.setLargeIcon(loadBitmap(R.drawable.icon2));
                break;
        }

        // sound TODO