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

View File

@@ -33,7 +33,8 @@ public class FolderAdapter extends ArrayAdapter<EmailFolder> {
EmailFolder folder = getItem(position); EmailFolder folder = getItem(position);
TextView name = (TextView) v.findViewById(R.id.folder_name); 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; return v;
} }

View File

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