From 597093149dcd82de5d469d94e38401e6100006f6 Mon Sep 17 00:00:00 2001 From: str4d Date: Mon, 14 Apr 2014 21:36:54 +0000 Subject: [PATCH] Update folder list text on folder changes --- src/i2p/bote/FolderListAdapter.java | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/i2p/bote/FolderListAdapter.java b/src/i2p/bote/FolderListAdapter.java index f4bdc5a..1f98e1b 100644 --- a/src/i2p/bote/FolderListAdapter.java +++ b/src/i2p/bote/FolderListAdapter.java @@ -1,9 +1,9 @@ package i2p.bote; import java.util.List; - import i2p.bote.fileencryption.PasswordException; import i2p.bote.folder.EmailFolder; +import i2p.bote.folder.FolderListener; import i2p.bote.util.BoteHelper; import android.content.Context; import android.view.LayoutInflater; @@ -12,7 +12,7 @@ import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.TextView; -public class FolderListAdapter extends ArrayAdapter { +public class FolderListAdapter extends ArrayAdapter implements FolderListener { private final LayoutInflater mInflater; public FolderListAdapter(Context context) { @@ -21,10 +21,15 @@ public class FolderListAdapter extends ArrayAdapter { } public void setData(List folders) { + // Remove previous FolderListeners + for (int i = 0; i < getCount(); i++) { + getItem(i).removeFolderListener(this); + } clear(); if (folders != null) { for (EmailFolder folder : folders) { add(folder); + folder.addFolderListener(this); } } } @@ -35,7 +40,6 @@ public class FolderListAdapter extends ArrayAdapter { EmailFolder folder = getItem(position); TextView name = (TextView) v.findViewById(R.id.folder_name); - // TODO: This needs to be updated when emails change. try { name.setText(BoteHelper.getFolderDisplayNameWithNew(getContext(), folder)); } catch (PasswordException e) { @@ -45,4 +49,16 @@ public class FolderListAdapter extends ArrayAdapter { return v; } + + // FolderListener + + @Override + public void elementAdded() { + notifyDataSetChanged(); + } + + @Override + public void elementRemoved() { + notifyDataSetChanged(); + } }