?? mujmail.java
字號(hào):
SMTP.getSMTPSingleton(this).close(forcedClose, outBox);
for (Enumeration e = getMailAccounts().elements(); e.hasMoreElements();) {
MailAccount account = (MailAccount) e.nextElement();
account.getProtocol().close(forcedClose, getInBox()); // Alf: Change
}
if(getInBox().isPushActive()){
getInBox().stopPush();
getMenu().refreshAll(true);
}
}
/** Loads defaults folders in mujMail serially.
* (Inbox, OutBox, SentBox, Drafts, Trash)
* Note: It's called from separate thread ( BoxList.loadingBoxesThread)
*/
public void loadDefaulFolders() {
getInBox().getMailDB().loadDB( getInBox());
synchronized (getInBox().getMailDB()) {
getInBox().getMailDB().waitForTaskEnd();
}
getOutBox().getMailDB().loadDB( getOutBox());
synchronized (getOutBox().getMailDB()) {
getOutBox().getMailDB().waitForTaskEnd();
}
getSentBox().getMailDB().loadDB( getSentBox());
synchronized (getSentBox().getMailDB()) {
getSentBox().getMailDB().waitForTaskEnd();
}
getTrash().getMailDB().loadDB( getTrash());
synchronized (getTrash().getMailDB()) {
getTrash().getMailDB().waitForTaskEnd();
}
getDraft().getMailDB().loadDB( getDraft());
synchronized (getDraft().getMailDB()) {
getDraft().getMailDB().waitForTaskEnd();
}
}
/**
* Shows main menu on display
*/
public void mainMenu() {
getMenu().setSelectedTab(getMenu().getSelectedTab());
getMenu().refresh(getMenu().getSelectedTab(), true);
}
/// Shows about form
private class About extends Form {
Command back, feedBack;
public About(MujMail mujMail) {
super(Lang.get(Lang.ABT_ABOUT));
Image logo = Functions.getIcon("logo.png");
append(logo);
append(Lang.get(Lang.ABT_TEXT));
back = new Command(Lang.get(Lang.BTN_BACK), Command.BACK, 0);
feedBack = new Command(Lang.get(Lang.BTN_ABT_FEEDBACK), Command.HELP, 0);
addCommand(back);
addCommand(feedBack);
setCommandListener(mujMail);
}
}
/// Shows form for clearing databases
public class ClearDBSelect extends Form {
private static final byte CLR_DB_INBOX = 0;
private static final byte CLR_DB_OUTBOX = CLR_DB_INBOX + 1;
private static final byte CLR_DB_DRAFT = CLR_DB_OUTBOX + 1;
private static final byte CLR_DB_SENTBOX = CLR_DB_DRAFT + 1;
private static final byte CLR_DB_TRASH = CLR_DB_SENTBOX + 1;
//#ifdef MUJMAIL_USR_FOLDERS
private static final byte CLR_DB_USERFOLDERS = CLR_DB_TRASH + 1;
//#else
//# private static final byte CLR_DB_USERFOLDERS = CLR_DB_TRASH;
//#endif
private static final byte CLR_DB_ACCOUNTS = CLR_DB_USERFOLDERS + 1;
private static final byte CLR_DB_ADRESSBOOX = CLR_DB_ACCOUNTS + 1;
private static final byte CLR_DB_MSGIDS = CLR_DB_ADRESSBOOX + 1;
private static final byte CLR_DB_SETTINGS = CLR_DB_MSGIDS + 1;
private static final byte CLR_DB_SIZE = CLR_DB_SETTINGS + 1; // Lease this as last element
ChoiceGroup DB_to_delete;
Command OK, cancel;
public ClearDBSelect(MujMail mujMail) {
super(Lang.get(Lang.AC_CLEAR_DB));
DB_to_delete = new ChoiceGroup(Lang.get(Lang.DB_SPACE_LEFT), Choice.MULTIPLE);
DB_to_delete.append(Lang.get(Lang.TB_INBOX), null);
DB_to_delete.append(Lang.get(Lang.TB_OUTBOX), null);
DB_to_delete.append(Lang.get(Lang.TB_DRAFT), null);
DB_to_delete.append(Lang.get(Lang.TB_SENTBOX), null);
DB_to_delete.append(Lang.get(Lang.TB_TRASH), null);
//#ifdef MUJMAIL_USR_FOLDERS
DB_to_delete.append(Lang.get(Lang.TB_USERFOLDERS), null);
//#endif
DB_to_delete.append(Lang.get(Lang.AS_ACCOUNTS), null);
DB_to_delete.append(Lang.get(Lang.AD_ADDRESSBOOK), null);
DB_to_delete.append(Lang.get(Lang.MSGIDS_CACHE), null);
DB_to_delete.append("Settings", null);
DB_to_delete.setSelectedFlags(new boolean[CLR_DB_SIZE]); //set all to false
append(DB_to_delete);
OK = new Command(Lang.get(Lang.BTN_OK), Command.OK, 0);
cancel = new Command(Lang.get(Lang.BTN_CANCEL), Command.BACK, 0);
addCommand(OK);
addCommand(cancel);
setCommandListener(mujMail);
}
public void refresh() {
DB_to_delete.setLabel(Lang.get(Lang.DB_SPACE_LEFT) + Functions.spaceLeft("SPACE_TEST") / 1024 + "kB");
int spaceOccupied = getInBox().getOccupiedSpace();
DB_to_delete.set(CLR_DB_INBOX, Lang.get(Lang.TB_INBOX) + " (" + spaceOccupied / 1024 + "kB)", null);
spaceOccupied = outBox.getOccupiedSpace();
DB_to_delete.set(CLR_DB_OUTBOX, Lang.get(Lang.TB_OUTBOX) + " (" + spaceOccupied / 1024 + "kB)", null);
spaceOccupied = draft.getOccupiedSpace();
DB_to_delete.set(CLR_DB_DRAFT, Lang.get(Lang.TB_DRAFT) + " (" + spaceOccupied / 1024 + "kB)", null);
spaceOccupied = getSentBox().getOccupiedSpace();
DB_to_delete.set(CLR_DB_SENTBOX, Lang.get(Lang.TB_SENTBOX) + " (" + spaceOccupied / 1024 + "kB)", null);
spaceOccupied = getTrash().getOccupiedSpace();
DB_to_delete.set(CLR_DB_TRASH, Lang.get(Lang.TB_TRASH) + " (" + spaceOccupied / 1024 + "kB)", null);
//#ifdef MUJMAIL_USR_FOLDERS
spaceOccupied = getUserMailBoxes().spaceOccupied();
DB_to_delete.set(CLR_DB_USERFOLDERS, Lang.get(Lang.TB_USERFOLDERS) + " (" + spaceOccupied / 1024 + "kB)", null);
//#endif
spaceOccupied = Functions.spaceOccupied("ACCOUNTS");
DB_to_delete.set(CLR_DB_ACCOUNTS, Lang.get(Lang.AS_ACCOUNTS) + " (" + spaceOccupied / 1024 + "kB)", null);
spaceOccupied = Functions.spaceOccupied("AddressBook");
DB_to_delete.set(CLR_DB_ADRESSBOOX, Lang.get(Lang.AD_ADDRESSBOOK) + " (" + spaceOccupied / 1024 + "kB)", null);
spaceOccupied = getMailDBSeen().getOccupiedSpace();
DB_to_delete.set(CLR_DB_MSGIDS, Lang.get(Lang.MSGIDS_CACHE) + " (" + spaceOccupied / 1024 + "kB)", null);
DB_to_delete.set(CLR_DB_SETTINGS, "Settings", null);
}
/**
* @param sure
* @param deleteAll deletes all settings independently on which was selected.
*/
private void clearDataBases(boolean sure, boolean deleteAll) {
boolean[] selected = new boolean[CLR_DB_SIZE];
if (!deleteAll && clearDBSelect.DB_to_delete.getSelectedFlags(selected) == 0) {
myDisplay.setCurrent(getMenu());
return;
}
if (!sure) {
alert.setAlert(clearDBSelect, getMenu(),Lang.get(Lang.ALRT_SYS_DEL_ALL_CONFIRM), MyAlert.DB_CLEAR_CONFIRM, AlertType.CONFIRMATION);
return;
}
if (deleteAll || selected[CLR_DB_INBOX]) {
getInBox().deleteAllMailsFromBoxAndDB(true);
}
if (deleteAll || selected[CLR_DB_OUTBOX]) {
getOutBox().deleteAllMailsFromBoxAndDB(true);
}
if (deleteAll || selected[CLR_DB_DRAFT]) {
getDraft().deleteAllMailsFromBoxAndDB(true);
}
if (deleteAll || selected[CLR_DB_SENTBOX]) {
getSentBox().deleteAllMailsFromBoxAndDB(true);
}
if (deleteAll || selected[CLR_DB_TRASH]) {
getTrash().deleteAllMailsFromBoxAndDB(true);
}
//#ifdef MUJMAIL_USR_FOLDERS
if (deleteAll || selected[CLR_DB_USERFOLDERS]) {
getUserMailBoxes().deleteAllMailsFromAllUserBoxesAndDB();
}
//#endif
if (deleteAll || selected[CLR_DB_ACCOUNTS]) {
getAccountSettings().deleteAll(true);
}
if (deleteAll || selected[CLR_DB_ADRESSBOOX]) {
getAddressBook().deleteAll(true);
}
if (deleteAll || selected[CLR_DB_MSGIDS]) {
getMailDBSeen().deleteAll(true);
}
if (deleteAll || selected[CLR_DB_SETTINGS]) {
settings.restoreSettings();
}
clearDBSelect.DB_to_delete.setSelectedFlags(new boolean[CLR_DB_SIZE]); //set all to false
mainMenu();
}
}
/* ***************************
* getters and setters *
*****************************/
public AccountSettings getAccountSettings() {
return accountSettings;
}
public AddressBook getAddressBook() {
return addressBook;
}
public void setAddressBook(AddressBook addressBook) {
this.addressBook = addressBook;
}
public MyAlert getAlert() {
return alert;
}
public MyDisplay getDisplay() {
return myDisplay;
}
public PersistentBox getDraft() {
return draft;
}
public InBox getInBox() {
return inBox;
}
/**
* TODO: do not return hashtable but make methods for accessing accounts
* @return
*/
public Hashtable/*<String, MailAccountPrimar>*/ getMailAccounts() {
return mailAccounts;
}
public void setMailAccounts(Hashtable mailAccounts) {
this.mailAccounts = mailAccounts;
}
public MailDBManager getMailDBManager() {
return mailDBManager;
}
public MailDBSeen getMailDBSeen() {
return mailDBSeen;
}
public Menu getMenu() {
return menu;
}
public PersistentBox getOutBox() {
return outBox;
}
//#ifdef MUJMAIL_SEARCH
public SearchBox getSearchBox() {
return searchBox;
}
//#endif
public PersistentBox getSentBox() {
return sentBox;
}
public Settings getSettings() {
return settings;
}
public void setSettings(Settings settings) {
this.settings = settings;
}
//#ifdef MUJMAIL_SYNC
public Sync getSync() {
return sync;
}
//#endif
public Trash getTrash() {
return trash;
}
//#ifdef MUJMAIL_USR_FOLDERS
public BoxList getUserMailBoxes() {
return userMailBoxes;
}
//#endif
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -