111d1978d8d16004598347abc93918b54a5ef760bMichael Kolb 211d1978d8d16004598347abc93918b54a5ef760bMichael Kolbpackage com.android.browser.view; 311d1978d8d16004598347abc93918b54a5ef760bMichael Kolb 411d1978d8d16004598347abc93918b54a5ef760bMichael Kolbimport com.android.browser.R; 511d1978d8d16004598347abc93918b54a5ef760bMichael Kolb 611d1978d8d16004598347abc93918b54a5ef760bMichael Kolbimport android.content.Context; 711d1978d8d16004598347abc93918b54a5ef760bMichael Kolbimport android.graphics.Canvas; 811d1978d8d16004598347abc93918b54a5ef760bMichael Kolbimport android.graphics.drawable.Drawable; 911d1978d8d16004598347abc93918b54a5ef760bMichael Kolbimport android.util.AttributeSet; 1011d1978d8d16004598347abc93918b54a5ef760bMichael Kolbimport android.widget.ProgressBar; 1111d1978d8d16004598347abc93918b54a5ef760bMichael Kolb 1211d1978d8d16004598347abc93918b54a5ef760bMichael Kolb 1311d1978d8d16004598347abc93918b54a5ef760bMichael Kolbpublic class StopProgressView extends ProgressBar { 1411d1978d8d16004598347abc93918b54a5ef760bMichael Kolb 1511d1978d8d16004598347abc93918b54a5ef760bMichael Kolb Drawable mOverlayDrawable; 1611d1978d8d16004598347abc93918b54a5ef760bMichael Kolb Drawable mProgressDrawable; 1711d1978d8d16004598347abc93918b54a5ef760bMichael Kolb int mWidth; 1811d1978d8d16004598347abc93918b54a5ef760bMichael Kolb int mHeight; 1911d1978d8d16004598347abc93918b54a5ef760bMichael Kolb 2011d1978d8d16004598347abc93918b54a5ef760bMichael Kolb /** 2111d1978d8d16004598347abc93918b54a5ef760bMichael Kolb * @param context 2211d1978d8d16004598347abc93918b54a5ef760bMichael Kolb * @param attrs 2311d1978d8d16004598347abc93918b54a5ef760bMichael Kolb * @param defStyle 2411d1978d8d16004598347abc93918b54a5ef760bMichael Kolb * @param styleRes 2511d1978d8d16004598347abc93918b54a5ef760bMichael Kolb */ 2611d1978d8d16004598347abc93918b54a5ef760bMichael Kolb public StopProgressView(Context context, AttributeSet attrs, int defStyle, int styleRes) { 2711d1978d8d16004598347abc93918b54a5ef760bMichael Kolb super(context, attrs, defStyle, styleRes); 2811d1978d8d16004598347abc93918b54a5ef760bMichael Kolb init(attrs); 2911d1978d8d16004598347abc93918b54a5ef760bMichael Kolb } 3011d1978d8d16004598347abc93918b54a5ef760bMichael Kolb 3111d1978d8d16004598347abc93918b54a5ef760bMichael Kolb /** 3211d1978d8d16004598347abc93918b54a5ef760bMichael Kolb * @param context 3311d1978d8d16004598347abc93918b54a5ef760bMichael Kolb * @param attrs 3411d1978d8d16004598347abc93918b54a5ef760bMichael Kolb * @param defStyle 3511d1978d8d16004598347abc93918b54a5ef760bMichael Kolb */ 3611d1978d8d16004598347abc93918b54a5ef760bMichael Kolb public StopProgressView(Context context, AttributeSet attrs, int defStyle) { 3711d1978d8d16004598347abc93918b54a5ef760bMichael Kolb super(context, attrs, defStyle); 3811d1978d8d16004598347abc93918b54a5ef760bMichael Kolb init(attrs); 3911d1978d8d16004598347abc93918b54a5ef760bMichael Kolb } 4011d1978d8d16004598347abc93918b54a5ef760bMichael Kolb 4111d1978d8d16004598347abc93918b54a5ef760bMichael Kolb /** 4211d1978d8d16004598347abc93918b54a5ef760bMichael Kolb * @param context 4311d1978d8d16004598347abc93918b54a5ef760bMichael Kolb * @param attrs 4411d1978d8d16004598347abc93918b54a5ef760bMichael Kolb */ 4511d1978d8d16004598347abc93918b54a5ef760bMichael Kolb public StopProgressView(Context context, AttributeSet attrs) { 4611d1978d8d16004598347abc93918b54a5ef760bMichael Kolb super(context, attrs); 4711d1978d8d16004598347abc93918b54a5ef760bMichael Kolb init(attrs); 4811d1978d8d16004598347abc93918b54a5ef760bMichael Kolb } 4911d1978d8d16004598347abc93918b54a5ef760bMichael Kolb 5011d1978d8d16004598347abc93918b54a5ef760bMichael Kolb /** 5111d1978d8d16004598347abc93918b54a5ef760bMichael Kolb * @param context 5211d1978d8d16004598347abc93918b54a5ef760bMichael Kolb */ 5311d1978d8d16004598347abc93918b54a5ef760bMichael Kolb public StopProgressView(Context context) { 5411d1978d8d16004598347abc93918b54a5ef760bMichael Kolb super(context); 5511d1978d8d16004598347abc93918b54a5ef760bMichael Kolb init(null); 5611d1978d8d16004598347abc93918b54a5ef760bMichael Kolb } 5711d1978d8d16004598347abc93918b54a5ef760bMichael Kolb 5811d1978d8d16004598347abc93918b54a5ef760bMichael Kolb private void init(AttributeSet attrs) { 5911d1978d8d16004598347abc93918b54a5ef760bMichael Kolb mProgressDrawable = getIndeterminateDrawable(); 6011d1978d8d16004598347abc93918b54a5ef760bMichael Kolb setImageDrawable(mContext.getResources() 6111d1978d8d16004598347abc93918b54a5ef760bMichael Kolb .getDrawable(R.drawable.ic_stop_holo_dark)); 6211d1978d8d16004598347abc93918b54a5ef760bMichael Kolb } 6311d1978d8d16004598347abc93918b54a5ef760bMichael Kolb 6411d1978d8d16004598347abc93918b54a5ef760bMichael Kolb public void hideProgress() { 6511d1978d8d16004598347abc93918b54a5ef760bMichael Kolb setIndeterminateDrawable(null); 6611d1978d8d16004598347abc93918b54a5ef760bMichael Kolb } 6711d1978d8d16004598347abc93918b54a5ef760bMichael Kolb 6811d1978d8d16004598347abc93918b54a5ef760bMichael Kolb public void showProgress() { 6911d1978d8d16004598347abc93918b54a5ef760bMichael Kolb setIndeterminateDrawable(mProgressDrawable); 7011d1978d8d16004598347abc93918b54a5ef760bMichael Kolb } 7111d1978d8d16004598347abc93918b54a5ef760bMichael Kolb 7211d1978d8d16004598347abc93918b54a5ef760bMichael Kolb @Override 732e108efdcef6b91697c69bfa8d348669c61c040fMichael Kolb protected void onLayout(boolean changed, int left, int top, int right, int bottom) { 742e108efdcef6b91697c69bfa8d348669c61c040fMichael Kolb super.onLayout(changed, left, top, right, bottom); 752e108efdcef6b91697c69bfa8d348669c61c040fMichael Kolb mWidth = (right - left) * 2 / 3; 762e108efdcef6b91697c69bfa8d348669c61c040fMichael Kolb mHeight = (bottom - top) * 2 / 3; 772e108efdcef6b91697c69bfa8d348669c61c040fMichael Kolb } 782e108efdcef6b91697c69bfa8d348669c61c040fMichael Kolb 792e108efdcef6b91697c69bfa8d348669c61c040fMichael Kolb @Override 8011d1978d8d16004598347abc93918b54a5ef760bMichael Kolb protected void onDraw(Canvas canvas) { 8111d1978d8d16004598347abc93918b54a5ef760bMichael Kolb super.onDraw(canvas); 8211d1978d8d16004598347abc93918b54a5ef760bMichael Kolb if (mOverlayDrawable != null) { 8311d1978d8d16004598347abc93918b54a5ef760bMichael Kolb int l = (getWidth() - mWidth) / 2; 8411d1978d8d16004598347abc93918b54a5ef760bMichael Kolb int t = (getHeight() - mHeight) / 2; 8511d1978d8d16004598347abc93918b54a5ef760bMichael Kolb mOverlayDrawable.setBounds(l, t, l + mWidth, t + mHeight); 8611d1978d8d16004598347abc93918b54a5ef760bMichael Kolb mOverlayDrawable.draw(canvas); 8711d1978d8d16004598347abc93918b54a5ef760bMichael Kolb } 8811d1978d8d16004598347abc93918b54a5ef760bMichael Kolb } 8911d1978d8d16004598347abc93918b54a5ef760bMichael Kolb 9011d1978d8d16004598347abc93918b54a5ef760bMichael Kolb public Drawable getDrawable() { 9111d1978d8d16004598347abc93918b54a5ef760bMichael Kolb return mOverlayDrawable; 9211d1978d8d16004598347abc93918b54a5ef760bMichael Kolb } 9311d1978d8d16004598347abc93918b54a5ef760bMichael Kolb 9411d1978d8d16004598347abc93918b54a5ef760bMichael Kolb public void setImageDrawable(Drawable d) { 9511d1978d8d16004598347abc93918b54a5ef760bMichael Kolb mOverlayDrawable = d; 9611d1978d8d16004598347abc93918b54a5ef760bMichael Kolb } 9711d1978d8d16004598347abc93918b54a5ef760bMichael Kolb 9811d1978d8d16004598347abc93918b54a5ef760bMichael Kolb} 99