/* * Copyright (c) 2019 Hemanth Savarala. * * Licensed under the GNU General Public License v3 * * This is free software: you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by * the Free Software Foundation either version 3 of the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. */ package code.name.monkey.retromusic.util; import android.util.Base64; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import androidx.annotation.NonNull; /** * Created by hefuyi on 2016/11/8. */ public class LyricUtil { private static final String lrcRootPath = android.os.Environment .getExternalStorageDirectory().toString() + "/RetroMusic/lyrics/"; @NonNull public static File writeLrcToLoc(@NonNull String title, @NonNull String artist, @NonNull String lrcContext) { FileWriter writer = null; try { File file = new File(getLrcPath(title, artist)); if (!file.getParentFile().exists()) { file.getParentFile().mkdirs(); } writer = new FileWriter(getLrcPath(title, artist)); writer.write(lrcContext); return file; } catch (IOException e) { e.printStackTrace(); return null; } finally { try { if (writer != null) writer.close(); } catch (IOException e) { e.printStackTrace(); } } } public static boolean deleteLrcFile(@NonNull String title, @NonNull String artist) { File file = new File(getLrcPath(title, artist)); return file.delete(); } public static boolean isLrcFileExist(@NonNull String title, @NonNull String artist) { File file = new File(getLrcPath(title, artist)); return file.exists(); } @NonNull public static File getLocalLyricFile(@NonNull String title, @NonNull String artist) { File file = new File(getLrcPath(title, artist)); if (file.exists()) { return file; } else { return new File("lyric file not exist"); } } private static String getLrcPath(String title, String artist) { return lrcRootPath + title + " - " + artist + ".lrc"; } @NonNull public static String decryptBASE64(@NonNull String str) { if (str == null || str.length() == 0) { return null; } try { byte[] encode = str.getBytes("UTF-8"); // base64 解密 return new String(Base64.decode(encode, 0, encode.length, Base64.DEFAULT), "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return null; } @NonNull public static String getStringFromFile(@NonNull String title, @NonNull String artist) throws Exception { File file = new File(getLrcPath(title, artist)); FileInputStream fin = new FileInputStream(file); String ret = convertStreamToString(fin); fin.close(); return ret; } private static String convertStreamToString(InputStream is) throws Exception { BufferedReader reader = new BufferedReader(new InputStreamReader(is)); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line).append("\n"); } reader.close(); return sb.toString(); } }