package com.docd.purefm.file; import android.os.FileObserver; import java.util.Collection; /** * Used to create and fire events for {@link android.os.FileObserver} * This is necessary because in locations where superuser access is needed * the FileObserver can't deliver results */ public final class FileObserverNotifier { private FileObserverNotifier() { } public static void notifyCreated(final GenericFile created) { final GenericFile path; if (created.isDirectory()) { path = created; } else { path = created.getParentFile(); } if (path != null) { final MultiListenerFileObserver observer = FileObserverCache.getInstance().get(path); if (observer != null) { observer.onEvent(FileObserver.CREATE, observer.getPath()); } } } public static void notifyDeleted(final GenericFile deleted) { final MultiListenerFileObserver observer = FileObserverCache.getInstance().get(deleted); if (observer != null) { observer.onEvent(FileObserver.DELETE_SELF, observer.getPath()); } } public static void notifyDeleted(final Collection<GenericFile> deleted) { final FileObserverCache cache = FileObserverCache.getInstance(); for (final GenericFile deletedFile : deleted) { final MultiListenerFileObserver observer = cache.get(deletedFile); if (observer != null) { observer.onEvent(FileObserver.DELETE_SELF, observer.getPath()); } } } }