⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mujmail.java

📁 手机邮箱撒的方式方式方式的
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
        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

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -