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

Commit b490d8d6 authored by Daniel Sandler's avatar Daniel Sandler Committed by Android Git Automerger
Browse files

am 29933fb2: Merge "Improve handling of small largeIcons in tablet ticker." into ics-mr1

* commit '29933fb2':
  Improve handling of small largeIcons in tablet ticker.
parents bea42859 29933fb2
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