From ac679d2e5292c58aabc0c0b0dade3fec99a924e1 Mon Sep 17 00:00:00 2001 From: str4d Date: Wed, 2 Jul 2014 06:55:59 +0000 Subject: [PATCH] Show number of incomplete emails at top of Inbox --- .../i2p/bote/android/EmailListFragment.java | 28 +++++++++++++++++-- app/src/main/res/values/strings.xml | 1 + 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/i2p/bote/android/EmailListFragment.java b/app/src/main/java/i2p/bote/android/EmailListFragment.java index 8722444..e7fb1c2 100644 --- a/app/src/main/java/i2p/bote/android/EmailListFragment.java +++ b/app/src/main/java/i2p/bote/android/EmailListFragment.java @@ -59,6 +59,7 @@ public class EmailListFragment extends ListFragment implements OnEmailSelectedListener mCallback; private PullToRefreshLayout mPullToRefreshLayout; + private TextView mNumIncompleteEmails; private EmailListAdapter mAdapter; private EmailFolder mFolder; @@ -131,6 +132,14 @@ public class EmailListFragment extends ListFragment implements .setup(mPullToRefreshLayout); mPullToRefreshLayout.setRefreshing(I2PBote.getInstance().isCheckingForMail()); + + int numIncompleteEmails = I2PBote.getInstance().getNumIncompleteEmails(); + if (numIncompleteEmails > 0) { + mNumIncompleteEmails = new TextView(getActivity()); + mNumIncompleteEmails.setText(getResources().getString(R.string.incomplete_emails, + numIncompleteEmails)); + getListView().addHeaderView(mNumIncompleteEmails); + } } } @@ -279,11 +288,13 @@ public class EmailListFragment extends ListFragment implements @Override public void onListItemClick(ListView parent, View view, int pos, long id) { super.onListItemClick(parent, view, pos, id); + int position = mNumIncompleteEmails == null ? pos : pos - 1; + if (position < 0) return; if (mMode == null) { mCallback.onEmailSelected( - mFolder.getName(), mAdapter.getItem(pos).getMessageID()); + mFolder.getName(), mAdapter.getItem(position).getMessageID()); } else - onListItemSelect(pos); + onListItemSelect(position); } private void onListItemSelect(int position) { @@ -525,6 +536,19 @@ public class EmailListFragment extends ListFragment implements protected void onPostExecute(Void result) { super.onPostExecute(result); + int numIncomingEmails = I2PBote.getInstance().getNumIncompleteEmails(); + if (numIncomingEmails > 0) { + if (mNumIncompleteEmails == null) { + mNumIncompleteEmails = new TextView(getActivity()); + getListView().addHeaderView(mNumIncompleteEmails); + } + mNumIncompleteEmails.setText(getResources().getString(R.string.incomplete_emails, + numIncomingEmails)); + } else if (mNumIncompleteEmails != null) { + getListView().removeHeaderView(mNumIncompleteEmails); + mNumIncompleteEmails = null; + } + // Notify PullToRefreshLayout that the refresh has finished mPullToRefreshLayout.setRefreshComplete(); } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c07ff67..3c0abd2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -40,6 +40,7 @@ Pull to check email Checking email... Let go to check email + %s incomplete emails %s selected Delete Mark read