1 /*** 2 * Ambient - A music player for the Android platform 3 Copyright (C) 2007 Martin Vysny 4 5 This program is free software: you can redistribute it and/or modify 6 it under the terms of the GNU General Public License as published by 7 the Free Software Foundation, either version 3 of the License, or 8 (at your option) any later version. 9 10 This program is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public License 16 along with this program. If not, see <http://www.gnu.org/licenses/>. 17 */ 18 19 package sk.baka.ambient.library; 20 21 import sk.baka.ambient.collection.TrackOriginEnum; 22 23 /*** 24 * Scans for files in a background thread. When 25 * {@link Thread#isInterrupted() interrupted}, it should end ASAP. The 26 * {@link Runnable#run()} may throw {@link RuntimeException}. 27 * 28 * @author Martin Vysny 29 */ 30 public interface IFileScanner extends Runnable { 31 /*** 32 * Initializes the scanner. 33 * 34 * @param library 35 * the library instance. 36 * @param genreCache 37 * the genre cache. 38 */ 39 void init(final Library library, final GenreCache genreCache); 40 41 /*** 42 * Returns the storage type. 43 * 44 * @return storage type, must not be <code>null</code>. 45 */ 46 TrackOriginEnum getOrigin(); 47 48 /*** 49 * Invoked when the scan finishes. Checks if the scanner already provided 50 * the user with some kind of notification. 51 * 52 * @return <code>true</code> if user was notified about the scan being 53 * finished, <code>false</code> otherwise. 54 */ 55 boolean isUserNotified(); 56 }