Focusing on the conversation pager grabs wrong initial focus

When the framework tries to shift focus from the listview
to the conversation pane, it calls onRequestFocusInDescendants.
By default, this method will find the first child that is focusable
and call requestFocus on that child.

This won't work for ConversationContainer because we add the
children view in reverse order. As a result, it always tries
to focus the conversation footer first.

Override onRequestFocusInDescendants to always auto focus
the first header item fixes this issue.

In ConversationViewAdapter, we also prevent views that
are recycled from grabbing focus with up/down navigation.

This CL also contains a ClassCastException bug fix for
ConversationListFragment$onKey.

b/17189775 b/17113398 b/17162145

Change-Id: I739207178fe3df1087d6504fffb11bfdf854a5dc
6 files changed