package com.rapidftr.utilities; import net.rim.device.api.io.file.FileSystemJournal; import net.rim.device.api.io.file.FileSystemJournalEntry; import net.rim.device.api.io.file.FileSystemJournalListener; import net.rim.device.api.system.Characters; import net.rim.device.api.system.EventInjector.KeyEvent; public abstract class PhotoSaveListener implements FileSystemJournalListener { private long lastUSN; public PhotoSaveListener() { lastUSN = FileSystemJournal.getNextUSN(); } public void fileJournalChanged() { long USN = FileSystemJournal.getNextUSN(); for (long i = USN - 1; i >= lastUSN; --i) { FileSystemJournalEntry entry = FileSystemJournal.getEntry(i); if (entry != null) { if (entry.getEvent() == FileSystemJournalEntry.FILE_ADDED || entry.getEvent() == FileSystemJournalEntry.FILE_CHANGED || entry.getEvent() == FileSystemJournalEntry.FILE_RENAMED) { if (entry.getPath().indexOf(".jpg") != -1) { photo(entry.getPath()); injectKey(Characters.ESCAPE); injectKey(Characters.ESCAPE); lastUSN = USN; } } } } } private void injectKey(char key) { KeyEvent inject = new KeyEvent(KeyEvent.KEY_DOWN, key, 0); inject.post(); } protected abstract void photo(String path); }