diff options
author | Jin Cao <jinyan@google.com> | 2014-08-05 14:03:59 -0700 |
---|---|---|
committer | Jin Cao <jinyan@google.com> | 2014-08-08 17:57:43 -0700 |
commit | a7404589b03ac9dd0d07b3f7d0a1ec92ac9acb62 (patch) | |
tree | 0d8e9613760c7ffff1a6ca24b910671a231f38cb /src/com/android/mail/browse/ConversationViewAdapter.java | |
parent | 094986e3c824d705909af10464954532c377adc3 (diff) | |
download | android_packages_apps_UnifiedEmail-a7404589b03ac9dd0d07b3f7d0a1ec92ac9acb62.tar.gz android_packages_apps_UnifiedEmail-a7404589b03ac9dd0d07b3f7d0a1ec92ac9acb62.tar.bz2 android_packages_apps_UnifiedEmail-a7404589b03ac9dd0d07b3f7d0a1ec92ac9acb62.zip |
[KBNav CV] basic support for CV keyboard nav
Support basic navigation via keyboard in CV.
b/16636060
Change-Id: I66dbcd8015d722244b57c4e24579d0d854d3ee74
Diffstat (limited to 'src/com/android/mail/browse/ConversationViewAdapter.java')
-rw-r--r-- | src/com/android/mail/browse/ConversationViewAdapter.java | 84 |
1 files changed, 69 insertions, 15 deletions
diff --git a/src/com/android/mail/browse/ConversationViewAdapter.java b/src/com/android/mail/browse/ConversationViewAdapter.java index 0ae489694..bda63c136 100644 --- a/src/com/android/mail/browse/ConversationViewAdapter.java +++ b/src/com/android/mail/browse/ConversationViewAdapter.java @@ -110,6 +110,8 @@ public class ConversationViewAdapter extends BaseAdapter { private final BidiFormatter mBidiFormatter; + private final View.OnKeyListener mOnKeyListener; + public class ConversationHeaderItem extends ConversationOverlayItem { public final Conversation mConversation; @@ -124,19 +126,22 @@ public class ConversationViewAdapter extends BaseAdapter { @Override public View createView(Context context, LayoutInflater inflater, ViewGroup parent) { - final ConversationViewHeader headerView = (ConversationViewHeader) inflater.inflate( + final ConversationViewHeader v = (ConversationViewHeader) inflater.inflate( R.layout.conversation_view_header, parent, false); - headerView.setCallbacks( + v.setCallbacks( mConversationCallbacks, mAccountController, mConversationUpdater); - headerView.bind(this); - headerView.setSubject(mConversation.subject); + v.bind(this); + v.setSubject(mConversation.subject); if (mAccountController.getAccount().supportsCapability( UIProvider.AccountCapabilities.MULTIPLE_FOLDERS_PER_CONV)) { - headerView.setFolders(mConversation); + v.setFolders(mConversation); } - headerView.setStarred(mConversation.starred); + v.setStarred(mConversation.starred); + + // Register the onkey listener for all relevant views + registerOnKeyListeners(v, v.findViewById(R.id.subject_and_folder_view)); - return headerView; + return v; } @Override @@ -150,6 +155,11 @@ public class ConversationViewAdapter extends BaseAdapter { return true; } + @Override + public View.OnKeyListener getOnKeyListener() { + return mOnKeyListener; + } + public ConversationViewAdapter getAdapter() { return ConversationViewAdapter.this; } @@ -169,11 +179,16 @@ public class ConversationViewAdapter extends BaseAdapter { @Override public View createView(Context context, LayoutInflater inflater, ViewGroup parent) { - final ConversationFooterView view = (ConversationFooterView) + final ConversationFooterView v = (ConversationFooterView) inflater.inflate(R.layout.conversation_footer, parent, false); - view.setAccountController(mAccountController); - view.setConversationFooterCallbacks(mConversationFooterCallbacks); - return view; + v.setAccountController(mAccountController); + v.setConversationFooterCallbacks(mConversationFooterCallbacks); + + // Register the onkey listener for all relevant views + registerOnKeyListeners(v, v.findViewById(R.id.reply_button), + v.findViewById(R.id.reply_all_button), v.findViewById(R.id.forward_button)); + + return v; } @Override @@ -191,6 +206,11 @@ public class ConversationViewAdapter extends BaseAdapter { return true; } + @Override + public View.OnKeyListener getOnKeyListener() { + return mOnKeyListener; + } + public MessageHeaderItem getLastMessageHeaderItem() { return mLastMessageHeaderItem; } @@ -248,6 +268,12 @@ public class ConversationViewAdapter extends BaseAdapter { v.setCallbacks(mAdapter.mMessageCallbacks); v.setContactInfoSource(mAdapter.mContactInfoSource); v.setVeiledMatcher(mAdapter.mMatcher); + + // Register the onkey listener for all relevant views + registerOnKeyListeners(v, v.findViewById(R.id.upper_header), + v.findViewById(R.id.hide_details), v.findViewById(R.id.edit_draft), + v.findViewById(R.id.reply), v.findViewById(R.id.reply_all), + v.findViewById(R.id.overflow), v.findViewById(R.id.send_date)); return v; } @@ -269,6 +295,11 @@ public class ConversationViewAdapter extends BaseAdapter { } @Override + public View.OnKeyListener getOnKeyListener() { + return mAdapter.getOnKeyListener(); + } + + @Override public boolean isExpanded() { return mExpanded; } @@ -367,6 +398,9 @@ public class ConversationViewAdapter extends BaseAdapter { R.layout.conversation_message_footer, parent, false); v.initialize(mAdapter.mLoaderManager, mAdapter.mFragmentManager, mAdapter.mAccountController, mAdapter.mFooterCallbacks); + + // Register the onkey listener for all relevant views + registerOnKeyListeners(v, v.findViewById(R.id.view_entire_message_prompt)); return v; } @@ -382,6 +416,11 @@ public class ConversationViewAdapter extends BaseAdapter { } @Override + public View.OnKeyListener getOnKeyListener() { + return mAdapter.getOnKeyListener(); + } + + @Override public boolean isExpanded() { return mHeaderItem.isExpanded(); } @@ -427,10 +466,14 @@ public class ConversationViewAdapter extends BaseAdapter { @Override public View createView(Context context, LayoutInflater inflater, ViewGroup parent) { - final SuperCollapsedBlock scb = (SuperCollapsedBlock) inflater.inflate( + final SuperCollapsedBlock v = (SuperCollapsedBlock) inflater.inflate( R.layout.super_collapsed_block, parent, false); - scb.initialize(mSuperCollapsedListener); - return scb; + v.initialize(mSuperCollapsedListener); + v.setOnKeyListener(mOnKeyListener); + + // Register the onkey listener for all relevant views + registerOnKeyListeners(v); + return v; } @Override @@ -445,6 +488,11 @@ public class ConversationViewAdapter extends BaseAdapter { } @Override + public View.OnKeyListener getOnKeyListener() { + return mOnKeyListener; + } + + @Override public boolean isExpanded() { return false; } @@ -479,7 +527,8 @@ public class ConversationViewAdapter extends BaseAdapter { OnClickListener scbListener, Map<String, Address> addressCache, FormattedDateBuilder dateBuilder, - BidiFormatter bidiFormatter) { + BidiFormatter bidiFormatter, + View.OnKeyListener onKeyListener) { mContext = controllableActivity.getActivityContext(); mDateBuilder = dateBuilder; mAccountController = accountController; @@ -499,6 +548,7 @@ public class ConversationViewAdapter extends BaseAdapter { mMatcher = controllableActivity.getAccountController().getVeiledAddressMatcher(); mBidiFormatter = bidiFormatter; + mOnKeyListener = onKeyListener; } @Override @@ -665,4 +715,8 @@ public class ConversationViewAdapter extends BaseAdapter { public BidiFormatter getBidiFormatter() { return mBidiFormatter; } + + public View.OnKeyListener getOnKeyListener() { + return mOnKeyListener; + } } |