package com.android.server.status; import android.content.Context; import android.util.AttributeSet; import android.view.Display; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.WindowManager; import android.widget.LinearLayout; import android.util.Log; public class ExpandedView extends LinearLayout { final Display mDisplay; StatusBarService mService; boolean mTracking; int mStartX, mStartY; int mMaxHeight = 0; int mPrevHeight = -1; public ExpandedView(Context context, AttributeSet attrs) { super(context, attrs); mDisplay = ((WindowManager)context.getSystemService( Context.WINDOW_SERVICE)).getDefaultDisplay(); } @Override protected void onFinishInflate() { super.onFinishInflate(); } /** We want to shrink down to 0, and ignore the background. */ @Override public int getSuggestedMinimumHeight() { return 0; } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(mMaxHeight, MeasureSpec.AT_MOST)); } @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { super.onLayout(changed, left, top, right, bottom); int height = bottom - top; if (height != mPrevHeight) { //Log.d(StatusBarService.TAG, "height changed old=" + mPrevHeight + " new=" + height); mPrevHeight = height; mService.updateExpandedViewPos(StatusBarService.EXPANDED_LEAVE_ALONE); } } void setMaxHeight(int h) { if (h != mMaxHeight) { mMaxHeight = h; requestLayout(); } } }