Merge "Move debug information back to suggestions strip"

This commit is contained in:
Tadashi G. Takaoka 2011-08-26 04:07:00 -07:00 committed by Android (Google) Code Review
commit 85b4752270
2 changed files with 24 additions and 11 deletions

View file

@ -22,9 +22,16 @@
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
> >
<!-- Placer for debug information -->
<RelativeLayout
android:id="@+id/candidates_placer"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<LinearLayout <LinearLayout
android:id="@+id/candidates_strip" android:id="@+id/candidates_strip"
android:orientation="horizontal" android:orientation="horizontal"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" /> android:layout_height="match_parent" />
</RelativeLayout>
</merge> </merge>

View file

@ -64,6 +64,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
private static final boolean DBG = LatinImeLogger.sDBG; private static final boolean DBG = LatinImeLogger.sDBG;
private final ViewGroup mCandidatesPlacer;
private final ViewGroup mCandidatesStrip; private final ViewGroup mCandidatesStrip;
private ViewGroup mCandidatesPane; private ViewGroup mCandidatesPane;
private ViewGroup mCandidatesPaneContainer; private ViewGroup mCandidatesPaneContainer;
@ -235,8 +236,8 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
lastView = info; lastView = info;
info.measure(WRAP_CONTENT, WRAP_CONTENT); info.measure(WRAP_CONTENT, WRAP_CONTENT);
final int infoWidth = info.getMeasuredWidth(); final int infoWidth = info.getMeasuredWidth();
FrameLayoutCompatUtils.placeViewAt(info, x - infoWidth, y, infoWidth, FrameLayoutCompatUtils.placeViewAt(
info.getMeasuredHeight()); info, x - infoWidth, y, infoWidth, info.getMeasuredHeight());
} }
} }
if (x != 0) { if (x != 0) {
@ -388,7 +389,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
return word; return word;
} }
public int layout(SuggestedWords suggestions, ViewGroup stripView, ViewGroup paneView, public int layout(SuggestedWords suggestions, ViewGroup stripView, ViewGroup placer,
int stripWidth) { int stripWidth) {
if (suggestions.isPunctuationSuggestions()) { if (suggestions.isPunctuationSuggestions()) {
return layoutPunctuationSuggestions(suggestions, stripView); return layoutPunctuationSuggestions(suggestions, stripView);
@ -405,6 +406,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
final View divider = mDividers.get(pos); final View divider = mDividers.get(pos);
// Add divider if this isn't the left most suggestion in candidate strip. // Add divider if this isn't the left most suggestion in candidate strip.
stripView.addView(divider); stripView.addView(divider);
x += divider.getMeasuredWidth();
} }
final CharSequence styled = mTexts.get(pos); final CharSequence styled = mTexts.get(pos);
@ -429,18 +431,19 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
word.setTextScaleX(scaleX); word.setTextScaleX(scaleX);
stripView.addView(word); stripView.addView(word);
setLayoutWeight(word, getCandidateWeight(index), MATCH_PARENT); setLayoutWeight(word, getCandidateWeight(index), MATCH_PARENT);
x += word.getMeasuredWidth();
if (DBG) { if (DBG) {
final CharSequence debugInfo = getDebugInfo(suggestions, pos); final CharSequence debugInfo = getDebugInfo(suggestions, pos);
if (debugInfo != null) { if (debugInfo != null) {
final TextView info = mInfos.get(pos); final TextView info = mInfos.get(pos);
info.setText(debugInfo); info.setText(debugInfo);
paneView.addView(info); placer.addView(info);
info.measure(WRAP_CONTENT, WRAP_CONTENT); info.measure(WRAP_CONTENT, WRAP_CONTENT);
final int infoWidth = info.getMeasuredWidth(); final int infoWidth = info.getMeasuredWidth();
final int y = info.getMeasuredHeight(); final int y = info.getMeasuredHeight();
FrameLayoutCompatUtils.placeViewAt(info, x, 0, infoWidth, y); FrameLayoutCompatUtils.placeViewAt(
x += infoWidth * 2; info, x - infoWidth, y, infoWidth, info.getMeasuredHeight());
} }
} }
} }
@ -559,6 +562,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
mPreviewPopup.setContentView(mPreviewText); mPreviewPopup.setContentView(mPreviewText);
mPreviewPopup.setBackgroundDrawable(null); mPreviewPopup.setBackgroundDrawable(null);
mCandidatesPlacer = (ViewGroup)findViewById(R.id.candidates_placer);
mCandidatesStrip = (ViewGroup)findViewById(R.id.candidates_strip); mCandidatesStrip = (ViewGroup)findViewById(R.id.candidates_strip);
for (int pos = 0; pos < MAX_SUGGESTIONS; pos++) { for (int pos = 0; pos < MAX_SUGGESTIONS; pos++) {
final TextView word = (TextView)inflater.inflate(R.layout.candidate_word, null); final TextView word = (TextView)inflater.inflate(R.layout.candidate_word, null);
@ -612,7 +616,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
final int width = getWidth(); final int width = getWidth();
final int countInStrip = mStripParams.layout( final int countInStrip = mStripParams.layout(
mSuggestions, mCandidatesStrip, mCandidatesPane, width); mSuggestions, mCandidatesStrip, mCandidatesPlacer, width);
mPaneParams.layout( mPaneParams.layout(
mSuggestions, mCandidatesPane, countInStrip, mStripParams.getTextColor(), width); mSuggestions, mCandidatesPane, countInStrip, mStripParams.getTextColor(), width);
} }
@ -774,6 +778,8 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
public void clear() { public void clear() {
mShowingAutoCorrectionInverted = false; mShowingAutoCorrectionInverted = false;
mCandidatesPlacer.removeAllViews();
mCandidatesPlacer.addView(mCandidatesStrip);
mCandidatesStrip.removeAllViews(); mCandidatesStrip.removeAllViews();
mCandidatesPane.removeAllViews(); mCandidatesPane.removeAllViews();
closeCandidatesPane(); closeCandidatesPane();