Skip to content
Snippets Groups Projects
Commit c2cd8223 authored by Geoffrey Métais's avatar Geoffrey Métais
Browse files

Split medialibrary instanciation & initilization

parent 58eb1d71
No related branches found
No related tags found
No related merge requests found
......@@ -22,14 +22,19 @@ AndroidMediaLibrary *MediaLibrary_getInstance(JNIEnv *env, jobject thiz);
static void
MediaLibrary_setInstance(JNIEnv *env, jobject thiz, AndroidMediaLibrary *p_obj);
void
setup(JNIEnv* env, jobject thiz) {
AndroidMediaLibrary *aml = new AndroidMediaLibrary(myVm, &ml_fields, thiz);
MediaLibrary_setInstance(env, thiz, aml);
}
void
init(JNIEnv* env, jobject thiz, jstring dbPath, jstring thumbsPath)
{
const char *db_utfchars = env->GetStringUTFChars(dbPath, JNI_FALSE);
const char *thumbs_utfchars = env->GetStringUTFChars(thumbsPath, JNI_FALSE);
const std::string stringDbPath(db_utfchars), stringThumbsPath(thumbs_utfchars);
AndroidMediaLibrary *aml = new AndroidMediaLibrary(myVm, &ml_fields, thiz);
MediaLibrary_setInstance(env, thiz, aml);
AndroidMediaLibrary *aml = MediaLibrary_getInstance(env, thiz);
aml->initML(stringDbPath, stringThumbsPath);
env->ReleaseStringUTFChars(dbPath, db_utfchars);
env->ReleaseStringUTFChars(thumbsPath, thumbs_utfchars);
......@@ -580,6 +585,7 @@ playlistDelete(JNIEnv* env, jobject thiz, jobject medialibrary, jlong playlistId
* JNI stuff
*/
static JNINativeMethod methods[] = {
{"nativeSetup", "()V", (void*)setup },
{"nativeInit", "(Ljava/lang/String;Ljava/lang/String;)V", (void*)init },
{"nativeRelease", "()V", (void*)release },
{"nativeAddDevice", "(Ljava/lang/String;Ljava/lang/String;Z)V", (void*)addDevice },
......
......@@ -76,6 +76,10 @@ public class Medialibrary {
System.loadLibrary("mla");
}
public void setup() {
nativeSetup();
}
public void init(Context context) {
nativeInit(context.getCacheDir()+"/vlc_media.db", context.getExternalFilesDir(null).getAbsolutePath()+"/thumbs");
mIsInitiated = true;
......@@ -92,8 +96,6 @@ public class Medialibrary {
public void addDevice(String uuid, String path, boolean removable) {
nativeAddDevice(uuid, path, removable);
for (String folder : banList)
nativeBanFolder(path+folder);
}
public void discover(String path) {
......@@ -397,6 +399,7 @@ public class Medialibrary {
// Native methods
private native void nativeSetup();
private native void nativeInit(String dbPath, String thumbsPath);
private native void nativeRelease();
private native void nativeBanFolder(String path);
......
......@@ -231,9 +231,14 @@ public class VLCApplication extends Application {
}
public static void setupMedialibrary(final Medialibrary ml) {
ml.init(getAppContext());
for (String storage : AndroidDevices.getMediaDirectories())
ml.setup();
String[] storages = AndroidDevices.getMediaDirectories();
for (String storage : storages)
ml.addDevice(storage, storage, TextUtils.equals(storage, AndroidDevices.EXTERNAL_PUBLIC_DIRECTORY));
ml.init(getAppContext());
for (String storage : storages)
for (String folder : Medialibrary.banList)
ml.banFolder(storage+folder);
if (ml.getFoldersList().length == 0) {
ml.discover(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getPath());
ml.discover(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES).getPath());
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment