summaryrefslogtreecommitdiffstats
path: root/src/com/android/mail/browse/ConversationViewAdapter.java
diff options
context:
space:
mode:
authorJin Cao <jinyan@google.com>2014-08-05 14:03:59 -0700
committerJin Cao <jinyan@google.com>2014-08-08 17:57:43 -0700
commita7404589b03ac9dd0d07b3f7d0a1ec92ac9acb62 (patch)
tree0d8e9613760c7ffff1a6ca24b910671a231f38cb /src/com/android/mail/browse/ConversationViewAdapter.java
parent094986e3c824d705909af10464954532c377adc3 (diff)
downloadandroid_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.java84
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;
+ }
}