am a8eaaa10: Merge change If90ee7e2 into eclair-mr2
Merge commit 'a8eaaa1027e09daab01224cfe4a27b19570d35b0' into eclair-mr2-plus-aosp * commit 'a8eaaa1027e09daab01224cfe4a27b19570d35b0': Fix TabHost NPE when there are no tabs
This commit is contained in:
@@ -279,6 +279,7 @@ mTabHost.addTab(TAB_TAG_1, "Hello, world!", "Tab 1");
|
|||||||
if (!handled
|
if (!handled
|
||||||
&& (event.getAction() == KeyEvent.ACTION_DOWN)
|
&& (event.getAction() == KeyEvent.ACTION_DOWN)
|
||||||
&& (event.getKeyCode() == KeyEvent.KEYCODE_DPAD_UP)
|
&& (event.getKeyCode() == KeyEvent.KEYCODE_DPAD_UP)
|
||||||
|
&& (mCurrentView != null)
|
||||||
&& (mCurrentView.isRootNamespace())
|
&& (mCurrentView.isRootNamespace())
|
||||||
&& (mCurrentView.hasFocus())
|
&& (mCurrentView.hasFocus())
|
||||||
&& (mCurrentView.findFocus().focusSearch(View.FOCUS_UP) == null)) {
|
&& (mCurrentView.findFocus().focusSearch(View.FOCUS_UP) == null)) {
|
||||||
@@ -292,7 +293,9 @@ mTabHost.addTab(TAB_TAG_1, "Hello, world!", "Tab 1");
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void dispatchWindowFocusChanged(boolean hasFocus) {
|
public void dispatchWindowFocusChanged(boolean hasFocus) {
|
||||||
mCurrentView.dispatchWindowFocusChanged(hasFocus);
|
if (mCurrentView != null){
|
||||||
|
mCurrentView.dispatchWindowFocusChanged(hasFocus);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCurrentTab(int index) {
|
public void setCurrentTab(int index) {
|
||||||
|
|||||||
@@ -183,7 +183,7 @@ public class TabWidget extends LinearLayout implements OnFocusChangeListener {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void childDrawableStateChanged(View child) {
|
public void childDrawableStateChanged(View child) {
|
||||||
if (child == getChildTabViewAt(mSelectedTab)) {
|
if (getTabCount() > 0 && child == getChildTabViewAt(mSelectedTab)) {
|
||||||
// To make sure that the bottom strip is redrawn
|
// To make sure that the bottom strip is redrawn
|
||||||
invalidate();
|
invalidate();
|
||||||
}
|
}
|
||||||
@@ -194,6 +194,9 @@ public class TabWidget extends LinearLayout implements OnFocusChangeListener {
|
|||||||
public void dispatchDraw(Canvas canvas) {
|
public void dispatchDraw(Canvas canvas) {
|
||||||
super.dispatchDraw(canvas);
|
super.dispatchDraw(canvas);
|
||||||
|
|
||||||
|
// Do nothing if there are no tabs.
|
||||||
|
if (getTabCount() == 0) return;
|
||||||
|
|
||||||
// If the user specified a custom view for the tab indicators, then
|
// If the user specified a custom view for the tab indicators, then
|
||||||
// do not draw the bottom strips.
|
// do not draw the bottom strips.
|
||||||
if (!mDrawBottomStrips) {
|
if (!mDrawBottomStrips) {
|
||||||
@@ -347,7 +350,7 @@ public class TabWidget extends LinearLayout implements OnFocusChangeListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void onFocusChange(View v, boolean hasFocus) {
|
public void onFocusChange(View v, boolean hasFocus) {
|
||||||
if (v == this && hasFocus) {
|
if (v == this && hasFocus && getTabCount() > 0) {
|
||||||
getChildTabViewAt(mSelectedTab).requestFocus();
|
getChildTabViewAt(mSelectedTab).requestFocus();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user