diff options
| author | Leon Scroggins <scroggo@google.com> | 2010-03-15 20:37:16 -0400 |
|---|---|---|
| committer | Leon Scroggins <scroggo@google.com> | 2010-03-16 10:50:14 -0400 |
| commit | 9535ceedad698858936e4c835caf683f75ec348a (patch) | |
| tree | f336e3e56b0e9f75b7ea6005a8b93081378c6e54 /src/com/android/browser/TitleBar.java | |
| parent | 2ee4a5acc5c1ef87afa02830b31770cb1359b626 (diff) | |
| download | packages_apps_Browser-9535ceedad698858936e4c835caf683f75ec348a.tar.gz packages_apps_Browser-9535ceedad698858936e4c835caf683f75ec348a.tar.bz2 packages_apps_Browser-9535ceedad698858936e4c835caf683f75ec348a.zip | |
Use a margin to make the title bar stay the same size while loading.
Allows title_bar to use wrap_content, and therefore be able to show
multiple lines of text in voice search mode.
Fixes http://b/issue?id=2510376
Change-Id: If196f63577b6606be0129ee224842dc858f5931a
Diffstat (limited to 'src/com/android/browser/TitleBar.java')
| -rw-r--r-- | src/com/android/browser/TitleBar.java | 45 |
1 files changed, 43 insertions, 2 deletions
diff --git a/src/com/android/browser/TitleBar.java b/src/com/android/browser/TitleBar.java index 03d44a66d..ee6aa9c09 100644 --- a/src/com/android/browser/TitleBar.java +++ b/src/com/android/browser/TitleBar.java @@ -36,6 +36,7 @@ import android.text.SpannableString; import android.text.Spanned; import android.text.TextUtils; import android.text.style.ImageSpan; +import android.util.DisplayMetrics; import android.util.TypedValue; import android.view.ContextMenu; import android.view.LayoutInflater; @@ -43,6 +44,7 @@ import android.view.MenuInflater; import android.view.MotionEvent; import android.view.View; import android.view.ViewConfiguration; +import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ProgressBar; @@ -77,6 +79,7 @@ public class TitleBar extends LinearLayout { private Drawable mNormalBackground; private Drawable mLoadingBackground; private ImageSpan mArcsSpan; + private int mExtraMargin; private static int LONG_PRESS = 1; @@ -99,9 +102,11 @@ public class TitleBar extends LinearLayout { Resources resources = context.getResources(); mCircularProgress = (Drawable) resources.getDrawable( com.android.internal.R.drawable.search_spinner); + DisplayMetrics metrics = resources.getDisplayMetrics(); + mExtraMargin = (int) TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_DIP, 6.5f, metrics); mIconDimension = (int) TypedValue.applyDimension( - TypedValue.COMPLEX_UNIT_DIP, 20f, - resources.getDisplayMetrics()); + TypedValue.COMPLEX_UNIT_DIP, 20f, metrics); mCircularProgress.setBounds(0, 0, mIconDimension, mIconDimension); mHorizontalProgress = (ProgressBar) findViewById( R.id.progress_horizontal); @@ -261,22 +266,39 @@ public class TitleBar extends LinearLayout { if (mInVoiceMode == inVoiceMode) return; mInVoiceMode = inVoiceMode && mVoiceSearchIntent != null; Drawable titleDrawable; + ViewGroup.MarginLayoutParams params + = (ViewGroup.MarginLayoutParams) mTitleBg.getLayoutParams(); if (mInVoiceMode) { mRtButton.setImageDrawable(mVoiceDrawable); titleDrawable = mVoiceModeBackground; mTitle.setEllipsize(null); mRtButton.setVisibility(View.VISIBLE); mStopButton.setVisibility(View.GONE); + if (params != null) { + params.setMargins(0, 0, 0, 0); + } } else { if (mInLoad) { titleDrawable = mLoadingBackground; mRtButton.setVisibility(View.GONE); mStopButton.setVisibility(View.VISIBLE); + ViewGroup.MarginLayoutParams stopParams + = (ViewGroup.MarginLayoutParams) + mStopButton.getLayoutParams(); + if (stopParams != null) { + stopParams.setMargins(0,0,0, mExtraMargin); + } + if (params != null) { + params.setMargins(0, 0, 0, mExtraMargin); + } } else { titleDrawable = mNormalBackground; mRtButton.setVisibility(View.VISIBLE); mStopButton.setVisibility(View.GONE); mRtButton.setImageDrawable(mBookmarkDrawable); + if (params != null) { + params.setMargins(0, 0, 0, 0); + } } mTitle.setEllipsize(TextUtils.TruncateAt.END); } @@ -300,6 +322,8 @@ public class TitleBar extends LinearLayout { * Update the progress, from 0 to 100. */ /* package */ void setProgress(int newProgress) { + ViewGroup.MarginLayoutParams params + = (ViewGroup.MarginLayoutParams) mTitleBg.getLayoutParams(); if (newProgress >= mHorizontalProgress.getMax()) { mTitle.setCompoundDrawables(null, null, null, null); ((Animatable) mCircularProgress).stop(); @@ -309,6 +333,11 @@ public class TitleBar extends LinearLayout { mRtButton.setVisibility(View.VISIBLE); mStopButton.setVisibility(View.GONE); mTitleBg.setBackgroundDrawable(mNormalBackground); + // Set the margin for the textfield to 0, which is appropriate + // for the normal background + if (params != null) { + params.setMargins(0, 0, 0, 0); + } } mInLoad = false; } else { @@ -326,6 +355,18 @@ public class TitleBar extends LinearLayout { mTitleBg.setBackgroundDrawable(mLoadingBackground); mRtButton.setVisibility(View.GONE); mStopButton.setVisibility(View.VISIBLE); + // Set a margin for the bottom of the textfield and the stop + // button so that the total height matches that of the + // title bar when the normal background is showing. + if (params != null) { + params.setMargins(0,0,0, mExtraMargin); + } + ViewGroup.MarginLayoutParams stopParams + = (ViewGroup.MarginLayoutParams) + mStopButton.getLayoutParams(); + if (stopParams != null) { + stopParams.setMargins(0,0,0, mExtraMargin); + } } mInLoad = true; } |
