FileDocCategorySizeDatePackage
IconMerger.javaAPI DocAndroid 5.1 API2765Thu Mar 12 22:22:42 GMT 2015com.android.systemui.statusbar.phone

IconMerger

public class IconMerger extends android.widget.LinearLayout

Fields Summary
private static final String
TAG
private static final boolean
DEBUG
private int
mIconSize
private android.view.View
mMoreView
Constructors Summary
public IconMerger(android.content.Context context, android.util.AttributeSet attrs)


         
        super(context, attrs);

        mIconSize = context.getResources().getDimensionPixelSize(
                R.dimen.status_bar_icon_size);

        if (DEBUG) {
            setBackgroundColor(0x800099FF);
        }
    
Methods Summary
private voidcheckOverflow(int width)

        if (mMoreView == null) return;

        final int N = getChildCount();
        int visibleChildren = 0;
        for (int i=0; i<N; i++) {
            if (getChildAt(i).getVisibility() != GONE) visibleChildren++;
        }
        final boolean overflowShown = (mMoreView.getVisibility() == View.VISIBLE);
        // let's assume we have one more slot if the more icon is already showing
        if (overflowShown) visibleChildren --;
        final boolean moreRequired = visibleChildren * mIconSize > width;
        if (moreRequired != overflowShown) {
            post(new Runnable() {
                @Override
                public void run() {
                    mMoreView.setVisibility(moreRequired ? View.VISIBLE : View.GONE);
                }
            });
        }
    
protected voidonLayout(boolean changed, int l, int t, int r, int b)

        super.onLayout(changed, l, t, r, b);
        checkOverflow(r - l);
    
protected voidonMeasure(int widthMeasureSpec, int heightMeasureSpec)

        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        // we need to constrain this to an integral multiple of our children
        int width = getMeasuredWidth();
        setMeasuredDimension(width - (width % mIconSize), getMeasuredHeight());
    
public voidsetOverflowIndicator(android.view.View v)

        mMoreView = v;