Changeset b0db4e4


Ignore:
Timestamp:
May 7, 2014 2:34:51 PM (6 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
f912b01
Parents:
649f76f
Message:
  • SusiMail?:
    • Don't fetch headers from folder sorters
    • Update debug setting when saving config
Location:
apps/susimail/src/src/i2p/susi/webmail
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • apps/susimail/src/src/i2p/susi/webmail/MailCache.java

    r649f76f rb0db4e4  
    4444class MailCache {
    4545       
    46         public static final boolean FETCH_HEADER = true;
    47         public static final boolean FETCH_ALL = false;
     46        public enum FetchMode {
     47                HEADER, ALL, CACHE_ONLY
     48        }
    4849       
    4950        private final POP3MailBox mailbox;
     
    106107         *
    107108         * @param uidl message id to get
    108          * @param headerOnly fetch only header lines?
     109         * @param mode CACHE_ONLY to not pull from pop server
    109110         * @return An e-mail or null
    110111         */
    111         public Mail getMail( String uidl, boolean headerOnly ) {
     112        public Mail getMail(String uidl, FetchMode mode) {
    112113               
    113114                Mail mail = null, newMail = null;
     
    130131                        return null;
    131132                int sz = mail.getSize();
    132                 if (sz > 0 && sz <= FETCH_ALL_SIZE)
    133                         headerOnly = false;
     133                if (mode == FetchMode.HEADER && sz > 0 && sz <= FETCH_ALL_SIZE)
     134                        mode = FetchMode.ALL;
    134135                       
    135                 if( headerOnly ) {
     136                if (mode == FetchMode.HEADER) {
    136137                        if(!mail.hasHeader())
    137138                                mail.setHeader(mailbox.getHeader(uidl));
    138                 } else {
     139                } else if (mode == FetchMode.ALL) {
    139140                        if(!mail.hasBody()) {
    140141                                ReadBuffer rb = mailbox.getBody(uidl);
     
    147148                                }
    148149                        }
     150                } else {
     151                        // else if it wasn't in cache, too bad
    149152                }
    150153                return mail;
     
    157160         * MUST already be connected, otherwise returns false.
    158161         *
     162         * @param mode HEADER or ALL only
    159163         * @return true if any were fetched
    160164         * @since 0.9.13
    161165         */
    162         public boolean getMail(boolean hOnly) {
     166        public boolean getMail(FetchMode mode) {
     167                if (mode == FetchMode.CACHE_ONLY)
     168                        throw new IllegalArgumentException();
     169                boolean hOnly = mode == FetchMode.HEADER;
    163170               
    164171                Collection<String> popKnown = mailbox.getUIDLs();
  • apps/susimail/src/src/i2p/susi/webmail/WebMail.java

    r649f76f rb0db4e4  
    252252                 */
    253253                public int compare(String arg0, String arg1) {
    254                         Mail a = mailCache.getMail( arg0, MailCache.FETCH_HEADER );
    255                         Mail b = mailCache.getMail( arg1, MailCache.FETCH_HEADER );
     254                        Mail a = mailCache.getMail( arg0, MailCache.FetchMode.CACHE_ONLY );
     255                        Mail b = mailCache.getMail( arg1, MailCache.FetchMode.CACHE_ONLY );
    256256                        if (a == null)
    257257                                return (b == null) ? 0 : 1;
     
    441441                        Folder<String> f = folder;
    442442                        if (mc != null && f != null) {
    443                                 if (MailCache.FETCH_HEADER) {
    444                                         String[] uidls = mc.getUIDLs();
    445                                         f.setElements(uidls);
    446                                 }
     443                                String[] uidls = mc.getUIDLs();
     444                                f.setElements(uidls);
    447445                        }
    448446                }
     
    776774                                                        // prime the cache, request all headers at once
    777775                                                        // otherwise they are pulled one at a time by sortBy() below
    778                                                         mc.getMail(MailCache.FETCH_HEADER);
     776                                                        mc.getMail(MailCache.FetchMode.HEADER);
    779777                                                }
    780778                                                // get through cache so we have the disk-only ones too
     
    977975                               
    978976                                if( uidl != null ) {
    979                                         Mail mail = sessionObject.mailCache.getMail( uidl, MailCache.FETCH_ALL );
     977                                        Mail mail = sessionObject.mailCache.getMail( uidl, MailCache.FetchMode.ALL );
    980978                                        /*
    981979                                         * extract original sender from Reply-To: or From:
     
    11411139                        sessionObject.mailbox.refresh();
    11421140                        sessionObject.error += sessionObject.mailbox.lastError();
    1143                         sessionObject.mailCache.getMail(MailCache.FETCH_HEADER);
     1141                        sessionObject.mailCache.getMail(MailCache.FetchMode.HEADER);
    11441142                        // get through cache so we have the disk-only ones too
    11451143                        String[] uidls = sessionObject.mailCache.getUIDLs();
     
    12821280                        try {
    12831281                                int hashCode = Integer.parseInt( str );
    1284                                 Mail mail = sessionObject.mailCache.getMail( sessionObject.showUIDL, MailCache.FETCH_ALL );
     1282                                Mail mail = sessionObject.mailCache.getMail( sessionObject.showUIDL, MailCache.FetchMode.ALL );
    12851283                                MailPart part = mail != null ? getMailPartFromHashCode( mail.getPart(), hashCode ) : null;
    12861284                                if( part != null ) {
     
    14441442                                        } catch( NumberFormatException nfe ) {}
    14451443                                }
     1444                                boolean release = !Boolean.parseBoolean(props.getProperty(CONFIG_DEBUG));
     1445                                Debug.setLevel( release ? Debug.ERROR : Debug.DEBUG );
    14461446                                sessionObject.state = sessionObject.folder != null ? STATE_LIST : STATE_AUTH;
    14471447                                sessionObject.info = _("Configuration saved");
     
    16091609                                for( Iterator<String> it = sessionObject.folder.currentPageIterator(); it != null && it.hasNext(); ) {
    16101610                                        String uidl = it.next();
    1611                                         Mail mail = sessionObject.mailCache.getMail( uidl, MailCache.FETCH_HEADER );
     1611                                        Mail mail = sessionObject.mailCache.getMail( uidl, MailCache.FetchMode.HEADER );
    16121612                                        if( mail != null && mail.error.length() > 0 ) {
    16131613                                                sessionObject.error += mail.error;
     
    16301630                                // sessionObject.showUIDL = null
    16311631                                if ( sessionObject.showUIDL != null ) {
    1632                                         Mail mail = sessionObject.mailCache.getMail( sessionObject.showUIDL, MailCache.FETCH_ALL );
     1632                                        Mail mail = sessionObject.mailCache.getMail( sessionObject.showUIDL, MailCache.FetchMode.ALL );
    16331633                                        if( mail != null && mail.error.length() > 0 ) {
    16341634                                                sessionObject.error += mail.error;
     
    16631663                                        subtitle = ngettext("1 Message", "{0} Messages", sessionObject.folder.getSize());
    16641664                                } else if( sessionObject.state == STATE_SHOW ) {
    1665                                         Mail mail = sessionObject.mailCache.getMail(sessionObject.showUIDL, MailCache.FETCH_HEADER);
     1665                                        Mail mail = sessionObject.mailCache.getMail(sessionObject.showUIDL, MailCache.FetchMode.HEADER);
    16661666                                        if (mail != null && mail.shortSubject != null)
    16671667                                                subtitle = mail.shortSubject;
     
    21222122                for( Iterator<String> it = sessionObject.folder.currentPageIterator(); it != null && it.hasNext(); ) {
    21232123                        String uidl = it.next();
    2124                         Mail mail = sessionObject.mailCache.getMail( uidl, MailCache.FETCH_HEADER );
     2124                        Mail mail = sessionObject.mailCache.getMail( uidl, MailCache.FetchMode.HEADER );
    21252125                        if (mail == null) {
    21262126                                i++;
     
    22362236                        out.println( "<p class=\"error\">" + _("Really delete this message?") + " " + button( REALLYDELETE, _("Yes, really delete it!") ) + "</p>" );
    22372237                }
    2238                 Mail mail = sessionObject.mailCache.getMail( sessionObject.showUIDL, MailCache.FETCH_ALL );
     2238                Mail mail = sessionObject.mailCache.getMail( sessionObject.showUIDL, MailCache.FetchMode.ALL );
    22392239                if(!RELEASE && mail != null && mail.hasBody()) {
    22402240                        out.println( "<!--" );
Note: See TracChangeset for help on using the changeset viewer.