Skip to content
Snippets Groups Projects
Commit 200f0893 authored by Hugo Beauzée-Luyssen's avatar Hugo Beauzée-Luyssen
Browse files

medialib: Update to recent API changes

parent 45b78b2c
No related branches found
No related tags found
No related merge requests found
......@@ -207,10 +207,10 @@ AndroidMediaLibrary::search(const std::string& query)
return p_ml->search(query);
}
medialibrary::MediaSearchAggregate
std::vector<medialibrary::MediaPtr>
AndroidMediaLibrary::searchMedia(const std::string& query)
{
return p_ml->searchMedia(query);
return p_ml->searchMedia(query)->all();
}
std::vector<medialibrary::PlaylistPtr>
......@@ -333,7 +333,7 @@ std::vector<medialibrary::MediaPtr>
AndroidMediaLibrary::mediaFromArtist( int64_t artistId, const medialibrary::QueryParameters* params )
{
auto artist = p_ml->artist(artistId);
return artist == nullptr ? std::vector<medialibrary::MediaPtr>() : artist->media(params)->all();
return artist == nullptr ? std::vector<medialibrary::MediaPtr>() : artist->tracks(params)->all();
}
std::vector<medialibrary::AlbumPtr>
......
......@@ -55,7 +55,7 @@ public:
bool clearHistory();
medialibrary::SearchAggregate search(const std::string& query);
medialibrary::MediaSearchAggregate searchMedia(const std::string& query);
std::vector<medialibrary::MediaPtr> searchMedia(const std::string& query);
std::vector<medialibrary::PlaylistPtr> searchPlaylists(const std::string& query);
std::vector<medialibrary::AlbumPtr> searchAlbums(const std::string& query);
std::vector<medialibrary::GenrePtr> searchGenre(const std::string& query);
......
......@@ -349,14 +349,21 @@ search(JNIEnv* env, jobject thiz, jstring query)
return searchResult;
}
jobject
jobjectArray
searchMedia(JNIEnv* env, jobject thiz, jstring query)
{
AndroidMediaLibrary *aml = MediaLibrary_getInstance(env, thiz);
const char *queryChar = env->GetStringUTFChars(query, JNI_FALSE);
jobject searchResult = convertMediaSearchAggregateObject(env, &ml_fields, aml->searchMedia(queryChar));
auto searchResult = aml->searchMedia(queryChar);
jobjectArray mediaList = (jobjectArray) env->NewObjectArray(searchResult.size(), ml_fields.MediaWrapper.clazz, NULL);
int index = -1;
for(medialibrary::MediaPtr const& media : searchResult) {
jobject item = mediaToMediaWrapper(env, &ml_fields, media);
env->SetObjectArrayElement(mediaList, ++index, item);
env->DeleteLocalRef(item);
}
env->ReleaseStringUTFChars(query, queryChar);
return searchResult;
return mediaList;
}
jobjectArray
......
......@@ -149,59 +149,6 @@ convertPlaylistObject(JNIEnv* env, fields *fields, medialibrary::PlaylistPtr con
return item;
}
jobject
convertMediaSearchAggregateObject(JNIEnv* env, fields *fields, medialibrary::MediaSearchAggregate const& mediaSearchAggregatePtr)
{
jobjectArray episodes = (jobjectArray) env->NewObjectArray(mediaSearchAggregatePtr.episodes->count(), fields->MediaWrapper.clazz, NULL);
int index = -1, epDrops = 0;
for(medialibrary::MediaPtr const& media : mediaSearchAggregatePtr.episodes->all()) {
jobject item = mediaToMediaWrapper(env, fields, media);
if (item != nullptr)
env->SetObjectArrayElement(episodes, ++index, item);
else
++epDrops;
env->DeleteLocalRef(item);
}
jobjectArray movies = (jobjectArray) env->NewObjectArray(mediaSearchAggregatePtr.movies->count(), fields->MediaWrapper.clazz, NULL);
index = -1;
int movieDrops = 0;
for(medialibrary::MediaPtr const& media : mediaSearchAggregatePtr.movies->all()) {
jobject item = mediaToMediaWrapper(env, fields, media);
if (item != nullptr)
env->SetObjectArrayElement(movies, ++index, item);
else
++movieDrops;
env->DeleteLocalRef(item);
}
jobjectArray others = (jobjectArray) env->NewObjectArray(mediaSearchAggregatePtr.others->count(), fields->MediaWrapper.clazz, NULL);
index = -1;
int othersDrops = 0;
for(medialibrary::MediaPtr const& media : mediaSearchAggregatePtr.others->all()) {
jobject item = mediaToMediaWrapper(env, fields, media);
if (item != nullptr)
env->SetObjectArrayElement(others, ++index, item);
else
++othersDrops;
env->DeleteLocalRef(item);
}
jobjectArray tracks = (jobjectArray) env->NewObjectArray(mediaSearchAggregatePtr.tracks->count(), fields->MediaWrapper.clazz, NULL);
index = -1;
int tracksDrops = 0;
for(medialibrary::MediaPtr const& media : mediaSearchAggregatePtr.tracks->all()) {
jobject item = mediaToMediaWrapper(env, fields, media);
if (item != nullptr)
env->SetObjectArrayElement(tracks, ++index, item);
else
++tracksDrops;
env->DeleteLocalRef(item);
}
return env->NewObject(fields->MediaSearchAggregate.clazz, fields->MediaSearchAggregate.initID,
filteredArray(env, episodes, fields->MediaWrapper.clazz, epDrops),
filteredArray(env, movies, fields->MediaWrapper.clazz, movieDrops),
filteredArray(env, others, fields->MediaWrapper.clazz, othersDrops),
filteredArray(env, tracks, fields->MediaWrapper.clazz, tracksDrops));
}
jobject
convertSearchAggregateObject(JNIEnv* env, fields *fields, medialibrary::SearchAggregate const& searchAggregatePtr)
{
......@@ -237,8 +184,16 @@ convertSearchAggregateObject(JNIEnv* env, fields *fields, medialibrary::SearchAg
env->SetObjectArrayElement(playlists, ++index, item);
env->DeleteLocalRef(item);
}
//Media
jobjectArray mediaList = (jobjectArray) env->NewObjectArray(searchAggregatePtr.media->count(), fields->MediaWrapper.clazz, NULL);
index = -1;
for(medialibrary::MediaPtr const& media : searchAggregatePtr.media->all()) {
jobject item = mediaToMediaWrapper(env, fields, media);
env->SetObjectArrayElement(mediaList, ++index, item);
env->DeleteLocalRef(item);
}
return env->NewObject(fields->SearchAggregate.clazz, fields->SearchAggregate.initID,
albums, artists, genres, convertMediaSearchAggregateObject(env, fields, searchAggregatePtr.media), playlists);
albums, artists, genres, mediaList, playlists);
}
jobject
......
......@@ -98,7 +98,6 @@ jobject convertArtistObject(JNIEnv* env, fields *fields, medialibrary::ArtistPtr
jobject convertGenreObject(JNIEnv* env, fields *fields, medialibrary::GenrePtr const& genrePtr);
jobject convertPlaylistObject(JNIEnv* env, fields *fields, medialibrary::PlaylistPtr const& genrePtr);
jobject convertSearchAggregateObject(JNIEnv* env, fields *fields, medialibrary::SearchAggregate const& searchAggregatePtr);
jobject convertMediaSearchAggregateObject(JNIEnv* env, fields *fields, medialibrary::MediaSearchAggregate const& searchAggregatePtr);
jobject convertHistoryItemObject(JNIEnv* env, fields *fields, medialibrary::HistoryPtr const& historyPtr);
jobjectArray filteredArray(JNIEnv* env, jobjectArray array, jclass clazz, int removalCount = -1);
......
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