package com.mercandalli.android.apps.files.file.image; import android.content.Context; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import com.mercandalli.android.apps.files.file.FileModel; import java.util.List; public abstract class FileImageManager { @Nullable private static FileImageManager sInstance; @NonNull public static FileImageManager getInstance(@NonNull final Context context) { if (sInstance == null) { sInstance = new FileImageManagerImpl(context); } return sInstance; } /** * Get all the {@link FileModel} image in the device. */ public abstract void getAllLocalImage(); /** * Get all local folders that contain image. */ public abstract void getLocalImageFolders(); /** * Get all the {@link FileModel} image in a folder. */ public abstract void getLocalImage(final FileModel fileModelDirectParent); public abstract void clearCache(); public abstract boolean registerAllLocalImageListener(GetAllLocalImageListener getAllLocalImageListener); public abstract boolean unregisterAllLocalImageListener(GetAllLocalImageListener getAllLocalImageListener); public abstract boolean registerLocalImageFoldersListener(GetLocalImageFoldersListener getLocalImageFoldersListener); public abstract boolean unregisterLocalImageFoldersListener(GetLocalImageFoldersListener getLocalImageFoldersListener); public abstract boolean registerLocalImageListener(GetLocalImageListener getLocalImageListener); public abstract boolean unregisterLocalImageListener(GetLocalImageListener getLocalImageListener); public interface GetAllLocalImageListener { /** * Called when the call of {@link #getAllLocalImage()} succeeded. * * @param fileModels the {@link List} of result. */ void onAllLocalImageSucceeded(List<FileModel> fileModels); void onAllLocalImageFailed(); } interface GetLocalImageFoldersListener { /** * Called when the call of {@link #getLocalImageFolders()} succeeded. * * @param fileModels the {@link List} of result. */ void onLocalImageFoldersSucceeded(List<FileModel> fileModels); void onLocalImageFoldersFailed(); } interface GetLocalImageListener { /** * Called when the call of {@link #getLocalImage(FileModel)} succeeded. * * @param fileModels the {@link List} of result. */ void onLocalImageSucceeded(List<FileModel> fileModels); void onLocalImageFailed(); } }