package ar.rulosoft.mimanganu.utils; import android.content.Context; import android.content.SharedPreferences; import android.os.Environment; import android.preference.PreferenceManager; import java.util.Arrays; import ar.rulosoft.mimanganu.componentes.Chapter; import ar.rulosoft.mimanganu.componentes.Manga; import ar.rulosoft.mimanganu.servers.DeadServer; import ar.rulosoft.mimanganu.servers.ServerBase; /** * Created by Raul on 28/04/2017. */ public class Paths { private final static int[] illegalChars = { 34, 60, 62, 124, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 58, 42, 63, 92, 47 }; static { Arrays.sort(illegalChars); } public static String generateBasePath(ServerBase serverBase, Manga manga, Chapter chapter, Context context) { String serverName = serverBase.getServerName(); if (serverBase instanceof DeadServer) { serverName = DeadServer.getServerName(manga); } SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); String dir = prefs.getString("directorio", Environment.getExternalStorageDirectory().getAbsolutePath()); return dir + "/MiMangaNu/" + cleanFileName(serverName) + "/" + cleanFileName(manga.getTitle()).trim() + "/" + cleanFileName(chapter.getTitle()).trim(); } public static String generateBasePath(ServerBase serverBase, Manga manga, Context context) { String serverName = serverBase.getServerName(); if (serverBase instanceof DeadServer) { serverName = DeadServer.getServerName(manga); } SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); String dir = prefs.getString("directorio", Environment.getExternalStorageDirectory().getAbsolutePath()); return dir + "/MiMangaNu/" + cleanFileName(serverName).trim() + "/" + cleanFileName(manga.getTitle()).trim(); } private static String cleanFileName(String badFileName) { StringBuilder cleanName = new StringBuilder(); for (int i = 0; i < badFileName.length(); i++) { int c = (int) badFileName.charAt(i); if (Arrays.binarySearch(illegalChars, c) < 0) { cleanName.append((char) c); } } return cleanName.toString(); } }