Changeset 579


Ignore:
Timestamp:
12/30/09 11:45:34 (2 years ago)
Author:
octorian
Message:

Minor local-folder fixes, still more to come

Location:
trunk/LogicMail/src/org/logicprobe/LogicMail
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LogicMail/src/org/logicprobe/LogicMail/mail/LocalMailStore.java

    r529 r579  
    4141import net.rim.device.api.system.UnsupportedOperationException; 
    4242 
     43import org.logicprobe.LogicMail.conf.GlobalConfig; 
    4344import org.logicprobe.LogicMail.conf.MailSettings; 
    4445import org.logicprobe.LogicMail.message.FolderMessage; 
     
    5758 */ 
    5859public class LocalMailStore extends AbstractMailStore { 
     60    private GlobalConfig globalConfig; 
    5961    private FolderTreeItem rootFolder; 
    6062    private ThreadQueue threadQueue; 
     
    6365    public LocalMailStore() { 
    6466        super(); 
    65  
     67        globalConfig = MailSettings.getInstance().getGlobalConfig(); 
    6668        threadQueue = new ThreadQueue(); 
    6769        folderMaildirMap = new Hashtable(); 
     
    312314                } 
    313315                else { 
    314                         String folderUrl = MailSettings.getInstance().getGlobalConfig().getLocalDataLocation(); 
     316                        String folderUrl = globalConfig.getLocalDataLocation() + "local/"; 
    315317                        try { 
    316318                                FileConnection fileConnection = (FileConnection)Connector.open(folderUrl); 
  • trunk/LogicMail/src/org/logicprobe/LogicMail/model/MessageNode.java

    r575 r579  
    267267         * @return true, if the message is associated with a mailbox from a non-local account 
    268268         */ 
    269         boolean isCachable() { 
     269        public boolean isCachable() { 
    270270                if(parent != null 
    271271                                && parent.getParentAccount() != null 
     
    11281128                public void run() { 
    11291129                        boolean messageLoaded = false; 
    1130                         try { 
    1131                                 MessageNode tempNode = MailFileManager.getInstance().readMessageNode(parent, messageToken, true); 
    1132                                 if(tempNode != null) { 
    1133                                     MimeMessagePart messageStructure = tempNode.getMessageStructure(); 
    1134                                     MimeMessageContent[] messageContent = tempNode.getAllMessageContent(); 
    1135                                      
    1136                                     if(messageStructure != null && messageContent != null && messageContent.length > 0) { 
    1137                                         setMessageStructure(messageStructure); 
    1138                                         setMessageSource(tempNode.getMessageSource()); 
    1139                                         putMessageContent(messageContent); 
    1140                                         messageLoaded = true; 
    1141                                     } 
    1142                                 } 
    1143                         } catch (IOException e) { 
    1144                                 EventLogger.logEvent(AppInfo.GUID, 
    1145                                 ("Unable to read message from cache\r\n" 
    1146                                         + e.getMessage()).getBytes(), 
    1147                                 EventLogger.ERROR); 
    1148                         } 
    1149                          
     1130                        if(parent.getParentAccount().getStatus() != AccountNode.STATUS_LOCAL) { 
     1131                        try { 
     1132                                MessageNode tempNode = MailFileManager.getInstance().readMessageNode(parent, messageToken, true); 
     1133                                if(tempNode != null) { 
     1134                                    MimeMessagePart messageStructure = tempNode.getMessageStructure(); 
     1135                                    MimeMessageContent[] messageContent = tempNode.getAllMessageContent(); 
     1136                                     
     1137                                    if(messageStructure != null && messageContent != null && messageContent.length > 0) { 
     1138                                                setMessageStructure(messageStructure); 
     1139                                                setMessageSource(tempNode.getMessageSource()); 
     1140                                                putMessageContent(messageContent); 
     1141                                                messageLoaded = true; 
     1142                                    } 
     1143                                } 
     1144                        } catch (IOException e) { 
     1145                                EventLogger.logEvent(AppInfo.GUID, 
     1146                                ("Unable to read message from cache\r\n" 
     1147                                        + e.getMessage()).getBytes(), 
     1148                                EventLogger.ERROR); 
     1149                        } 
     1150                        } 
    11501151                        if(!messageLoaded) { 
    11511152                                AbstractMailStore mailStore = parent.getParentAccount().getMailStore(); 
     
    11661167                        } 
    11671168                         
    1168                         try { 
    1169                                 MimeMessageContent[] content = MailFileManager.getInstance().readMessageContent(parent, messageToken); 
    1170                                 if(content != null && content.length > 0) { 
    1171                                         putMessageContent(content); 
    1172                                         for(int i=0; i<content.length; i++) { 
    1173                                                 contentToLoad.removeElement(content[i].getMessagePart()); 
    1174                                         } 
    1175                                 } 
    1176                         } catch (IOException e) { 
    1177                                 EventLogger.logEvent(AppInfo.GUID, 
    1178                                 ("Unable to read message from cache\r\n" 
    1179                                         + e.getMessage()).getBytes(), 
    1180                                 EventLogger.ERROR); 
     1169                        if(parent.getParentAccount().getStatus() != AccountNode.STATUS_LOCAL) { 
     1170                        try { 
     1171                                MimeMessageContent[] content = MailFileManager.getInstance().readMessageContent(parent, messageToken); 
     1172                                if(content != null && content.length > 0) { 
     1173                                        putMessageContent(content); 
     1174                                        for(int i=0; i<content.length; i++) { 
     1175                                                contentToLoad.removeElement(content[i].getMessagePart()); 
     1176                                        } 
     1177                                } 
     1178                        } catch (IOException e) { 
     1179                                EventLogger.logEvent(AppInfo.GUID, 
     1180                                ("Unable to read message from cache\r\n" 
     1181                                        + e.getMessage()).getBytes(), 
     1182                                EventLogger.ERROR); 
     1183                        } 
    11811184                        } 
    11821185                         
  • trunk/LogicMail/src/org/logicprobe/LogicMail/ui/NodeIcons.java

    r576 r579  
    200200 
    201201                public void visit(MessageNode node) { 
    202                     boolean unloaded = !node.hasCachedContent() && !node.hasMessageContent(); 
     202                    boolean unloaded = !node.hasCachedContent() && !node.hasMessageContent() && node.isCachable(); 
    203203                        int flags = node.getFlags(); 
    204204                if((flags & MessageNode.Flag.DELETED) != 0) 
Note: See TracChangeset for help on using the changeset viewer.