package com.mercandalli.android.apps.files.file.audio;
import android.content.Context;
import android.support.test.espresso.Espresso;
import android.support.test.espresso.idling.CountingIdlingResource;
import android.text.Spanned;
import android.util.Log;
import com.mercandalli.android.apps.files.file.FileManager;
import com.mercandalli.android.apps.files.file.FileModel;
import com.mercandalli.android.apps.files.file.local.provider.FileLocalProviderManager;
import java.io.File;
import java.util.List;
/* package */ class FileAudioManagerTest implements FileAudioManager {
private static final String TAG = "FileAudioManagerTest";
private final FileAudioManager mFileAudioManager;
private final CountingIdlingResource mLocalMusicFoldersCountingIdlingResource;
private final CountingIdlingResource mAllLocalCountingIdlingResource;
public FileAudioManagerTest(
final Context contextApp,
final FileLocalProviderManager fileLocalProviderManager,
final FileManager fileManager) {
mFileAudioManager = new FileAudioManagerImpl(contextApp, fileLocalProviderManager, fileManager);
mLocalMusicFoldersCountingIdlingResource =
new CountingIdlingResource(TAG + "#getLocalMusicFolders", true);
Espresso.registerIdlingResources(mLocalMusicFoldersCountingIdlingResource);
mFileAudioManager.addGetLocalMusicFoldersListener(new GetLocalMusicFoldersListener() {
@Override
public void onLocalMusicFoldersSucceeded(List<FileModel> fileModels) {
mLocalMusicFoldersCountingIdlingResource.decrement();
Log.d(TAG, "decrement succeed");
}
@Override
public void onLocalMusicFoldersFailed() {
mLocalMusicFoldersCountingIdlingResource.decrement();
Log.d(TAG, "decrement failed");
}
});
mAllLocalCountingIdlingResource =
new CountingIdlingResource("FileAudioManagerTest#getAllLocalMusic", true);
Espresso.registerIdlingResources(mAllLocalCountingIdlingResource);
addGetAllLocalMusicListener(new GetAllLocalMusicListener() {
@Override
public void onAllLocalMusicSucceeded(List<FileAudioModel> fileModels) {
if (!mAllLocalCountingIdlingResource.isIdleNow()) {
mAllLocalCountingIdlingResource.decrement();
}
}
@Override
public void onAllLocalMusicFailed() {
if (!mAllLocalCountingIdlingResource.isIdleNow()) {
mAllLocalCountingIdlingResource.decrement();
}
}
});
}
@Override
public void getAllLocalMusic() {
if (mAllLocalCountingIdlingResource.isIdleNow()) {
mAllLocalCountingIdlingResource.increment();
Log.d(TAG, "increment allLocalMusic");
}
mFileAudioManager.getAllLocalMusic();
}
@Override
public void getLocalMusic(final FileModel fileModelDirectParent) {
mFileAudioManager.getLocalMusic(fileModelDirectParent);
}
@Override
public void getLocalMusicFolders() {
if (mLocalMusicFoldersCountingIdlingResource.isIdleNow()) {
mLocalMusicFoldersCountingIdlingResource.increment();
Log.d(TAG, "increment localMusicFolders");
}
mFileAudioManager.getLocalMusicFolders();
}
@Override
public void getAllLocalMusicAlbums() {
mFileAudioManager.getAllLocalMusicAlbums();
}
@Override
public void getAllLocalMusicArtists() {
mFileAudioManager.getAllLocalMusicArtists();
}
@Override
public boolean setFileAudioMetaData(
final File fileAudio,
final String newTitle,
final String newArtist,
final String newAlbum) {
return mFileAudioManager.setFileAudioMetaData(fileAudio, newTitle, newArtist, newAlbum);
}
@Override
public boolean setFileAudioMetaData(
final FileAudioModel fileAudio,
final String newTitle,
final String newArtist,
final String newAlbum) {
return mFileAudioManager.setFileAudioMetaData(fileAudio, newTitle, newArtist, newAlbum);
}
@Override
public Spanned toSpanned(final Context context, final FileAudioModel fileAudioModel) {
return mFileAudioManager.toSpanned(context, fileAudioModel);
}
@Override
public void clearCache() {
mFileAudioManager.clearCache();
}
@Override
public boolean addGetAllLocalMusicListener(final GetAllLocalMusicListener getAllLocalMusicListener) {
return mFileAudioManager.addGetAllLocalMusicListener(getAllLocalMusicListener);
}
@Override
public boolean removeGetAllLocalMusicListener(final GetAllLocalMusicListener getAllLocalMusicListener) {
return mFileAudioManager.removeGetAllLocalMusicListener(getAllLocalMusicListener);
}
@Override
public boolean addGetLocalMusicFoldersListener(final GetLocalMusicFoldersListener getLocalImageFoldersListener) {
return mFileAudioManager.addGetLocalMusicFoldersListener(getLocalImageFoldersListener);
}
@Override
public boolean removeGetLocalMusicFoldersListener(final GetLocalMusicFoldersListener getLocalImageFoldersListener) {
return mFileAudioManager.removeGetLocalMusicFoldersListener(getLocalImageFoldersListener);
}
@Override
public boolean addGetLocalMusicListener(final GetLocalMusicListener getLocalImageListener) {
return mFileAudioManager.addGetLocalMusicListener(getLocalImageListener);
}
@Override
public boolean removeGetLocalMusicListener(final GetLocalMusicListener getLocalImageListener) {
return mFileAudioManager.removeGetLocalMusicListener(getLocalImageListener);
}
@Override
public boolean addMusicChangeListener(final MusicsChangeListener musicsChangeListener) {
return mFileAudioManager.addMusicChangeListener(musicsChangeListener);
}
@Override
public boolean removeMusicChangeListener(final MusicsChangeListener musicsChangeListener) {
return mFileAudioManager.removeMusicChangeListener(musicsChangeListener);
}
@Override
public boolean addGetAllLocalMusicArtistsListener(final GetAllLocalMusicArtistsListener getAllLocalMusicArtistsListener) {
return mFileAudioManager.addGetAllLocalMusicArtistsListener(getAllLocalMusicArtistsListener);
}
@Override
public boolean removeGetAllLocalMusicArtistsListener(final GetAllLocalMusicArtistsListener getAllLocalMusicArtistsListener) {
return mFileAudioManager.removeGetAllLocalMusicArtistsListener(getAllLocalMusicArtistsListener);
}
@Override
public boolean addGetAllLocalMusicAlbumsListener(final GetAllLocalMusicAlbumsListener getAllLocalMusicAlbumsListener) {
return mFileAudioManager.addGetAllLocalMusicAlbumsListener(getAllLocalMusicAlbumsListener);
}
@Override
public boolean removeGetAllLocalMusicAlbumsListener(final GetAllLocalMusicAlbumsListener getAllLocalMusicAlbumsListener) {
return mFileAudioManager.removeGetAllLocalMusicAlbumsListener(getAllLocalMusicAlbumsListener);
}
}