always utilize audio files when they exist

This commit is contained in:
dkanada 2021-05-12 02:04:42 +09:00
commit 2454c73836
2 changed files with 13 additions and 4 deletions

View file

@ -13,6 +13,7 @@ import com.dkanada.gramophone.model.Song;
import com.dkanada.gramophone.util.MusicUtil;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
@ -50,13 +51,14 @@ public class DownloadService extends Service {
try {
URL url = new URL(MusicUtil.getDownloadUri(song));
URLConnection connection = url.openConnection();
File download = new File(getCacheDir(), "download/" + song.id);
File audio = new File(MusicUtil.getFileUri(song));
audio.getParentFile().mkdirs();
audio.createNewFile();
download.getParentFile().mkdirs();
download.createNewFile();
InputStream input = connection.getInputStream();
OutputStream output = new FileOutputStream(audio);
OutputStream output = new FileOutputStream(download);
connection.connect();
@ -70,6 +72,13 @@ public class DownloadService extends Service {
input.close();
output.close();
input = new FileInputStream(download);
output = new FileOutputStream(audio);
output.write(input.read());
input.close();
output.close();
App.getDatabase().cacheDao().insertCache(new Cache(song));
} catch (Exception e) {
e.printStackTrace();

View file

@ -120,7 +120,7 @@ public class LocalPlayer implements Playback {
File audio = new File(MusicUtil.getFileUri(song));
Uri uri = Uri.fromFile(audio);
if (!song.cache || !audio.exists()) {
if (!audio.exists()) {
uri = Uri.parse(MusicUtil.getTranscodeUri(song));
}