diff --git a/res/values/strings.xml b/res/values/strings.xml index 783b4ac..eeb0fd8 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -3,7 +3,6 @@ I2P-Bote Settings - Hello world! Open nav Close nav @@ -12,4 +11,6 @@ Outbox Sent Trash + + Folder is empty diff --git a/src/i2p/bote/BoteHelper.java b/src/i2p/bote/BoteHelper.java index d461581..018cbbf 100644 --- a/src/i2p/bote/BoteHelper.java +++ b/src/i2p/bote/BoteHelper.java @@ -1,5 +1,6 @@ package i2p.bote; +import java.security.GeneralSecurityException; import java.util.List; import android.content.Context; @@ -22,7 +23,7 @@ public class BoteHelper { public static EmailFolder getMailFolder(String folderName) { List folders = I2PBote.getInstance().getEmailFolders(); for (EmailFolder folder : folders) { - if (folder.getName() == folderName) + if (folder.getName().equals(folderName)) return folder; } return null; @@ -37,17 +38,31 @@ public class BoteHelper { * @return The name of the folder. */ public static String getFolderDisplayName(Context ctx, EmailFolder folder) { + String displayName = ""; + String name = folder.getName(); if ("inbox".equals(name)) - return ctx.getResources().getString(R.string.folder_inbox); + displayName = ctx.getResources().getString(R.string.folder_inbox); else if ("outbox".equals(name)) - return ctx.getResources().getString(R.string.folder_outbox); + displayName = ctx.getResources().getString(R.string.folder_outbox); else if ("sent".equals(name)) - return ctx.getResources().getString(R.string.folder_sent); + displayName = ctx.getResources().getString(R.string.folder_sent); else if ("trash".equals(name)) - return ctx.getResources().getString(R.string.folder_trash); + displayName = ctx.getResources().getString(R.string.folder_trash); else - return name; + displayName = name; + + try { + int numUnread = folder.getNumNewEmails(); + if (numUnread > 0) + displayName = displayName + " (" + numUnread + ")"; + } catch (GeneralSecurityException e) { + // TODO Auto-generated catch block + } catch (PasswordException e) { + // TODO Auto-generated catch block + } + + return displayName; } public static List getEmails(EmailFolder folder, EmailAttribute sortColumn, boolean descending) throws PasswordException { diff --git a/src/i2p/bote/EmailListLoader.java b/src/i2p/bote/EmailListLoader.java index 43f43a5..3c0deb5 100644 --- a/src/i2p/bote/EmailListLoader.java +++ b/src/i2p/bote/EmailListLoader.java @@ -22,12 +22,13 @@ public class EmailListLoader extends AsyncTaskLoader> implements @Override public List loadInBackground() { + List emails = null; try { - return BoteHelper.getEmails(mFolder, null, false); + emails = BoteHelper.getEmails(mFolder, null, false); } catch (PasswordException pe) { // TODO: Handle this error properly (get user to log in) - return null; } + return emails; } /** diff --git a/src/i2p/bote/FolderFragment.java b/src/i2p/bote/FolderFragment.java index 3f16a91..27508e8 100644 --- a/src/i2p/bote/FolderFragment.java +++ b/src/i2p/bote/FolderFragment.java @@ -33,7 +33,11 @@ public class FolderFragment extends ListFragment implements String folderName = getArguments().getString(FOLDER_NAME); mFolder = BoteHelper.getMailFolder(folderName); + getActivity().setTitle(BoteHelper.getFolderDisplayName(getActivity(), mFolder)); + setListAdapter(mAdapter); + setEmptyText(getResources().getString( + R.string.folder_empty)); setListShown(false); if (mFolder != null)