/** * Copyright (c) 2015 unfoldingWord * http://creativecommons.org/licenses/MIT/ * See LICENSE file for details. * Contributors: * PJ Fechner <pj@actsmedia.com> */ package runnables; import model.AudioBitrate; import model.daoModels.AudioChapter; import model.daoModels.Book; import model.parsers.MediaType; import services.UWUpdaterService; /** * Created by Fechner on 9/24/15. */ public class UpdateMediaRunnable implements Runnable { private static final String TAG = "UpdateMediaRunnable"; private final Book book; private boolean isUpdatingVideo; private UWUpdaterService updater; private AudioBitrate bitrate; public UpdateMediaRunnable(boolean isUpdatingVideo, Book book, UWUpdaterService updater, AudioBitrate bitrate) { this.book = book; this.isUpdatingVideo = isUpdatingVideo; this.updater = updater; this.bitrate = bitrate; } @Override public void run() { updateBook(); } private void updateBook(){ if(!isUpdatingVideo) { if(!isUpdatingVideo){ book.update(); } for (AudioChapter chapter : book.getAudioBook().getAudioChapters()) { updater.addRunnable( new DownloadAudioRunnable(book, updater, chapter.getAudioUrl(bitrate.getBitrate())), book.getVersion(), MediaType.MEDIA_TYPE_AUDIO); } updater.runnableFinished(book.getVersion(), MediaType.MEDIA_TYPE_AUDIO); } } // // private void downloadMedia(final String url, final boolean isLast){ // // new BytesDownloadTask(new BytesDownloadTask.DownloadTaskListener(){ // @Override // public void downloadFinishedWithJson(byte[] data) { // Log.d(TAG, "Downloaded media: " + url); // saveMediaFile(url, data, isLast); // } // }).execute(url); // } // // private void saveMediaFile(String url, byte[] data, boolean isLast){ // // DataFileManager.saveDataForBook(updater.getApplicationContext(), book, data, MediaType.MEDIA_TYPE_AUDIO, url); // //// try{ //// FileOutputStream fos = updater.getApplicationContext().openFileOutput(FileNameHelper.getSaveFileNameFromUrl(url), Context.MODE_PRIVATE); //// fos.write(data); //// fos.close(); //// Log.i(TAG, "Media Saved: " + url); //// } //// catch (IOException e){ //// e.printStackTrace(); //// Log.e(TAG, "Error when saving media file"); //// } // if(isLast) { //// if(isUpdatingVideo){ //// book.setVideoSaveState(DownloadState.DOWNLOAD_STATE_DOWNLOADED.ordinal()); //// } //// else { //// book.setAudioSaveState(DownloadState.DOWNLOAD_STATE_DOWNLOADED.ordinal()); //// } // book.update(); // updater.runnableFinished(book.getVersion(), MediaType.MEDIA_TYPE_AUDIO); // } // } }