package org.sana.android.content; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.List; import android.net.Uri; import android.os.Environment; /** * * @author Sana Development * */ public class ModelContext { public static final String FILES_FORMAT = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Android/data%s/files%s"; public static File getExternalFilesDir(Uri uri){ if(Uris.isEmpty(uri)){ throw new IllegalArgumentException("Invalid uri: EMPTY"); } String path = "/"; switch(Uris.getTypeDescriptor(uri)){ case Uris.ITEM_ID: case Uris.ITEM_UUID: char sep = "/".charAt(0); path = uri.getPath(); int start = path.lastIndexOf(sep); path = path.substring(0, start); path = String.format(FILES_FORMAT, "org.sana", path); break; case Uris.ITEMS: path = String.format(FILES_FORMAT, "org.sana", uri.getPath()); } File result = new File(path); // be certain parents exist File nomedia = new File(result, ".nomedia"); touch(nomedia); return result; } static final boolean touch(File file){ try { file.mkdirs(); if(!file.exists()){ file.createNewFile(); } else { } return true; } catch (IOException e) { e.printStackTrace(); return false; } } }