mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-28 12:45:27 +00:00
Bug 889094 - NPE in BrowserToolbar due to late initialization of mFocusOrder. [r=sriram,bnicholson]
This commit is contained in:
parent
1e6e84f8d1
commit
3e96bcc570
@ -232,6 +232,16 @@ public class BrowserToolbar extends GeckoRelativeLayout
|
|||||||
mMenuIcon = (GeckoImageView) findViewById(R.id.menu_icon);
|
mMenuIcon = (GeckoImageView) findViewById(R.id.menu_icon);
|
||||||
mActionItemBar = (LinearLayout) findViewById(R.id.menu_items);
|
mActionItemBar = (LinearLayout) findViewById(R.id.menu_items);
|
||||||
mHasSoftMenuButton = !HardwareUtils.hasMenuButton();
|
mHasSoftMenuButton = !HardwareUtils.hasMenuButton();
|
||||||
|
|
||||||
|
// We use different layouts on phones and tablets, so adjust the focus
|
||||||
|
// order appropriately.
|
||||||
|
if (HardwareUtils.isTablet()) {
|
||||||
|
mFocusOrder = Arrays.asList(mTabs, mBack, mForward, this,
|
||||||
|
mSiteSecurity, mReader, mStop, mActionItemBar, mMenu);
|
||||||
|
} else {
|
||||||
|
mFocusOrder = Arrays.asList(this, mSiteSecurity, mReader, mStop,
|
||||||
|
mTabs, mMenu);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -419,16 +429,6 @@ public class BrowserToolbar extends GeckoRelativeLayout
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// We use different layouts on phones and tablets, so adjust the focus
|
|
||||||
// order appropriately.
|
|
||||||
if (HardwareUtils.isTablet()) {
|
|
||||||
mFocusOrder = Arrays.asList(mTabs, mBack, mForward, this,
|
|
||||||
mSiteSecurity, mReader, mStop, mActionItemBar, mMenu);
|
|
||||||
} else {
|
|
||||||
mFocusOrder = Arrays.asList(this, mSiteSecurity, mReader, mStop,
|
|
||||||
mTabs, mMenu);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -893,26 +893,27 @@ public class BrowserToolbar extends GeckoRelativeLayout
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (prevView != null) {
|
if (view == mActionItemBar) {
|
||||||
if (view == mActionItemBar) {
|
final int childCount = mActionItemBar.getChildCount();
|
||||||
final int childCount = mActionItemBar.getChildCount();
|
for (int child = 0; child < childCount; child++) {
|
||||||
if (childCount > 1) {
|
View childView = mActionItemBar.getChildAt(child);
|
||||||
View firstChild = mActionItemBar.getChildAt(0);
|
if (prevView != null) {
|
||||||
firstChild.setNextFocusLeftId(prevView.getId());
|
childView.setNextFocusLeftId(prevView.getId());
|
||||||
prevView.setNextFocusRightId(firstChild.getId());
|
prevView.setNextFocusRightId(childView.getId());
|
||||||
}
|
}
|
||||||
view = mActionItemBar.getChildAt(childCount - 1);
|
prevView = childView;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
view.setNextFocusLeftId(prevView.getId());
|
if (prevView != null) {
|
||||||
prevView.setNextFocusRightId(view.getId());
|
view.setNextFocusLeftId(prevView.getId());
|
||||||
|
prevView.setNextFocusRightId(view.getId());
|
||||||
|
}
|
||||||
|
prevView = view;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (needsNewFocus) {
|
if (needsNewFocus) {
|
||||||
requestFocus();
|
requestFocus();
|
||||||
}
|
|
||||||
|
|
||||||
prevView = view;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user