Speed fix: only show new count when there is data to show

This commit is contained in:
str4d
2014-02-27 04:11:28 +00:00
parent 7a772bb7a8
commit 108908cf49
3 changed files with 20 additions and 11 deletions

View File

@@ -14,9 +14,10 @@ public class BoteHelper extends GeneralHelper {
* user, so their name is already "translated".
* @param ctx Android Context to get strings from.
* @param folder The folder.
* @param showNew Should the name contain the number of new messages?
* @return The name of the folder.
*/
public static String getFolderDisplayName(Context ctx, EmailFolder folder) {
public static String getFolderDisplayName(Context ctx, EmailFolder folder, boolean showNew) {
String displayName = "";
String name = folder.getName();
@@ -31,14 +32,16 @@ public class BoteHelper extends GeneralHelper {
else
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
if (showNew) {
try {
int numNew = folder.getNumNewEmails();
if (numNew > 0)
displayName = displayName + " (" + numNew + ")";
} catch (GeneralSecurityException e) {
// TODO Auto-generated catch block
} catch (PasswordException e) {
// TODO Auto-generated catch block
}
}
return displayName;

View File

@@ -33,7 +33,8 @@ public class FolderAdapter extends ArrayAdapter<EmailFolder> {
EmailFolder folder = getItem(position);
TextView name = (TextView) v.findViewById(R.id.folder_name);
name.setText(BoteHelper.getFolderDisplayName(getContext(), folder));
// TODO: This needs to be updated when emails change.
name.setText(BoteHelper.getFolderDisplayName(getContext(), folder, true));
return v;
}

View File

@@ -43,7 +43,8 @@ public class FolderFragment extends ListFragment implements
setListShown(false);
setEmptyText(getResources().getString(
R.string.folder_empty));
getActivity().setTitle(BoteHelper.getFolderDisplayName(getActivity(), mFolder));
getActivity().setTitle(
BoteHelper.getFolderDisplayName(getActivity(), mFolder, false));
getLoaderManager().initLoader(EMAIL_LIST_LOADER, null, this);
}
}
@@ -57,6 +58,8 @@ public class FolderFragment extends ListFragment implements
public void onLoadFinished(Loader<List<Email>> loader,
List<Email> data) {
mAdapter.setData(data);
getActivity().setTitle(
BoteHelper.getFolderDisplayName(getActivity(), mFolder, true));
if (isResumed()) {
setListShown(true);
@@ -67,5 +70,7 @@ public class FolderFragment extends ListFragment implements
public void onLoaderReset(Loader<List<Email>> loader) {
mAdapter.setData(null);
getActivity().setTitle(
BoteHelper.getFolderDisplayName(getActivity(), mFolder, false));
}
}