Pass exceptions through from BoteHelper (like in GeneralHelper)

Todo: handle them.
This commit is contained in:
str4d
2014-02-27 04:18:06 +00:00
parent 7f0c026d0e
commit 256884e2a3
3 changed files with 49 additions and 17 deletions

View File

@ -16,8 +16,10 @@ public class BoteHelper extends GeneralHelper {
* @param folder The folder.
* @param showNew Should the name contain the number of new messages?
* @return The name of the folder.
* @throws PasswordException
* @throws GeneralSecurityException
*/
public static String getFolderDisplayName(Context ctx, EmailFolder folder, boolean showNew) {
public static String getFolderDisplayName(Context ctx, EmailFolder folder, boolean showNew) throws PasswordException, GeneralSecurityException {
String displayName = "";
String name = folder.getName();
@ -33,15 +35,9 @@ public class BoteHelper extends GeneralHelper {
displayName = name;
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
}
int numNew = folder.getNumNewEmails();
if (numNew > 0)
displayName = displayName + " (" + numNew + ")";
}
return displayName;

View File

@ -1,7 +1,9 @@
package i2p.bote;
import java.security.GeneralSecurityException;
import java.util.List;
import i2p.bote.fileencryption.PasswordException;
import i2p.bote.folder.EmailFolder;
import android.content.Context;
import android.view.LayoutInflater;
@ -34,7 +36,15 @@ public class FolderAdapter extends ArrayAdapter<EmailFolder> {
TextView name = (TextView) v.findViewById(R.id.folder_name);
// TODO: This needs to be updated when emails change.
name.setText(BoteHelper.getFolderDisplayName(getContext(), folder, true));
try {
name.setText(BoteHelper.getFolderDisplayName(getContext(), folder, true));
} catch (PasswordException e) {
// TODO: Get password from user and retry
name.setText("ERROR: " + e.getMessage());
} catch (GeneralSecurityException e) {
// TODO: Handle properly
name.setText("ERROR: " + e.getMessage());
}
return v;
}

View File

@ -1,8 +1,10 @@
package i2p.bote;
import java.security.GeneralSecurityException;
import java.util.List;
import i2p.bote.email.Email;
import i2p.bote.fileencryption.PasswordException;
import i2p.bote.folder.EmailFolder;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
@ -43,8 +45,16 @@ public class FolderFragment extends ListFragment implements
setListShown(false);
setEmptyText(getResources().getString(
R.string.folder_empty));
getActivity().setTitle(
BoteHelper.getFolderDisplayName(getActivity(), mFolder, false));
try {
getActivity().setTitle(
BoteHelper.getFolderDisplayName(getActivity(), mFolder, false));
} catch (PasswordException e) {
// TODO: Get password from user and retry
getActivity().setTitle("ERROR: " + e.getMessage());
} catch (GeneralSecurityException e) {
// TODO: Handle properly
getActivity().setTitle("ERROR: " + e.getMessage());
}
getLoaderManager().initLoader(EMAIL_LIST_LOADER, null, this);
}
}
@ -58,8 +68,16 @@ 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));
try {
getActivity().setTitle(
BoteHelper.getFolderDisplayName(getActivity(), mFolder, true));
} catch (PasswordException e) {
// TODO: Get password from user and retry
getActivity().setTitle("ERROR: " + e.getMessage());
} catch (GeneralSecurityException e) {
// TODO: Handle properly
getActivity().setTitle("ERROR: " + e.getMessage());
}
if (isResumed()) {
setListShown(true);
@ -70,7 +88,15 @@ public class FolderFragment extends ListFragment implements
public void onLoaderReset(Loader<List<Email>> loader) {
mAdapter.setData(null);
getActivity().setTitle(
BoteHelper.getFolderDisplayName(getActivity(), mFolder, false));
try {
getActivity().setTitle(
BoteHelper.getFolderDisplayName(getActivity(), mFolder, false));
} catch (PasswordException e) {
// TODO: Get password from user and retry
getActivity().setTitle("ERROR: " + e.getMessage());
} catch (GeneralSecurityException e) {
// TODO: Handle properly
getActivity().setTitle("ERROR: " + e.getMessage());
}
}
}