Browse Source

Let medialibrary auto set the group name upon creation with medias

3.3.x
Nicolas Pomepuy 6 years ago
committed by Geoffrey Métais
parent
commit
48f711c557
  1. 9
      application/vlc-android/src/org/videolan/vlc/viewmodels/mobile/VideosViewModel.kt
  2. 116
      buildsystem/compile-medialibrary.sh
  3. 4
      medialibrary/src/org/videolan/medialibrary/media/VideoGroupImpl.java

9
application/vlc-android/src/org/videolan/vlc/viewmodels/mobile/VideosViewModel.kt

@ -188,12 +188,13 @@ class VideosViewModel(context: Context, type: VideoGroupingType, val folder: Fol
suspend fun createGroup(medias: List<MediaWrapper>): VideoGroup? {
if (medias.size < 2) return null
val group = withContext(Dispatchers.IO) {
val newGroup = medialibrary.createVideoGroup(medias[0].title)
medias.forEach { newGroup.add(it.id) }
return withContext(Dispatchers.IO) {
val newGroup = medialibrary.createVideoGroup(medias.map { it.id }.toLongArray())
if (newGroup.title.isNullOrBlank()) {
newGroup.rename(medias[0].title)
}
newGroup
}
return group
}
suspend fun groupSimilar(media: MediaWrapper): Boolean {

116
buildsystem/compile-medialibrary.sh

@ -4,24 +4,24 @@
# ARGUMENTS #
#############
MEDIALIBRARY_HASH=3745bf75
MEDIALIBRARY_HASH=65cc81e9
while [ $# -gt 0 ]; do
case $1 in
help|--help)
echo "Use -a to set the ARCH"
echo "Use --release to build in release mode"
exit 1
;;
a|-a)
ANDROID_ABI=$2
shift
;;
release|--release)
RELEASE=1
;;
esac
case $1 in
help | --help)
echo "Use -a to set the ARCH"
echo "Use --release to build in release mode"
exit 1
;;
a | -a)
ANDROID_ABI=$2
shift
;;
release | --release)
RELEASE=1
;;
esac
shift
done
AVLC_SOURCED=1 . buildsystem/compile-libvlc.sh
@ -31,7 +31,7 @@ AVLC_SOURCED=1 . buildsystem/compile-libvlc.sh
################
if [ ! -d "${SRC_DIR}/medialibrary" ]; then
mkdir "${SRC_DIR}/medialibrary"
mkdir "${SRC_DIR}/medialibrary"
fi
##########
@ -45,18 +45,18 @@ SQLITE_RELEASE="sqlite-autoconf-3250300"
SQLITE_SHA1="5d6dc7634ec59e7a6fffa8758c1e184b2522c2e5"
if [ ! -d "${MEDIALIBRARY_MODULE_DIR}/${SQLITE_RELEASE}" ]; then
echo -e "\e[1m\e[32msqlite source not found, downloading\e[0m"
cd ${MEDIALIBRARY_MODULE_DIR}
rm -rf ${MEDIALIBRARY_BUILD_DIR}/build-android*
rm -rf ${MEDIALIBRARY_MODULE_DIR}/jni/libs
rm -rf ${MEDIALIBRARY_MODULE_DIR}/jni/obj
wget https://download.videolan.org/pub/contrib/sqlite/${SQLITE_RELEASE}.tar.gz
echo -e "\e[1m\e[32msqlite source not found, downloading\e[0m"
cd ${MEDIALIBRARY_MODULE_DIR}
rm -rf ${MEDIALIBRARY_BUILD_DIR}/build-android*
rm -rf ${MEDIALIBRARY_MODULE_DIR}/jni/libs
rm -rf ${MEDIALIBRARY_MODULE_DIR}/jni/obj
wget https://download.videolan.org/pub/contrib/sqlite/${SQLITE_RELEASE}.tar.gz
if [ ! "`sha1sum ${SQLITE_RELEASE}.tar.gz`" = "${SQLITE_SHA1} ${SQLITE_RELEASE}.tar.gz" ]; then
echo "Wrong sha1 for ${SQLITE_RELEASE}.tar.gz"
exit 1
fi
tar -xozf ${SQLITE_RELEASE}.tar.gz
rm -f ${SQLITE_RELEASE}.tar.gz
echo "Wrong sha1 for ${SQLITE_RELEASE}.tar.gz"
exit 1
fi
tar -xozf ${SQLITE_RELEASE}.tar.gz
rm -f ${SQLITE_RELEASE}.tar.gz
fi
cd ${MEDIALIBRARY_MODULE_DIR}/${SQLITE_RELEASE}
if [ ! -d "build-$ANDROID_ABI" ]; then
@ -65,7 +65,7 @@ fi;
cd "build-$ANDROID_ABI";
if [ ! -e ./config.status -o "$RELEASE" = "1" ]; then
../configure \
../configure \
--host=$TARGET_TUPLE \
--disable-shared \
CFLAGS="${VLC_CFLAGS}" \
@ -84,25 +84,25 @@ avlc_checkfail "sqlite build failed"
##############################
if [ ! -d "${MEDIALIBRARY_MODULE_DIR}/medialibrary" ]; then
echo -e "\e[1m\e[32mmedialibrary source not found, cloning\e[0m"
git clone http://code.videolan.org/videolan/medialibrary.git "${SRC_DIR}/medialibrary/medialibrary"
avlc_checkfail "medialibrary source: git clone failed"
cd ${MEDIALIBRARY_MODULE_DIR}/medialibrary
# git checkout 0.5.x
git submodule update --init libvlcpp
echo -e "\e[1m\e[32mmedialibrary source not found, cloning\e[0m"
git clone http://code.videolan.org/videolan/medialibrary.git "${SRC_DIR}/medialibrary/medialibrary"
avlc_checkfail "medialibrary source: git clone failed"
cd ${MEDIALIBRARY_MODULE_DIR}/medialibrary
# git checkout 0.5.x
git submodule update --init libvlcpp
else
cd ${MEDIALIBRARY_MODULE_DIR}/medialibrary
if ! git cat-file -e ${MEDIALIBRARY_HASH}; then
git pull --rebase
rm -rf ${MEDIALIBRARY_MODULE_DIR}/jni/libs
rm -rf ${MEDIALIBRARY_MODULE_DIR}/jni/obj
fi
cd ${MEDIALIBRARY_MODULE_DIR}/medialibrary
if ! git cat-file -e ${MEDIALIBRARY_HASH}; then
git pull --rebase
rm -rf ${MEDIALIBRARY_MODULE_DIR}/jni/libs
rm -rf ${MEDIALIBRARY_MODULE_DIR}/jni/obj
fi
fi
if [ "$RELEASE" = "1" ]; then
git reset --hard ${MEDIALIBRARY_HASH}
# In case of VLC 4.0 build, we need this commit to fix the build, but we
# still don't want to change the HASH for that.
git cherry-pick bfb2ad6e8b34a62c482e3064e6e13751482b903f
git reset --hard ${MEDIALIBRARY_HASH}
# In case of VLC 4.0 build, we need this commit to fix the build, but we
# still don't want to change the HASH for that.
git cherry-pick bfb2ad6e8b34a62c482e3064e6e13751482b903f
fi
cd ${SRC_DIR}
@ -123,11 +123,11 @@ fi;
cd "build-android-$ANDROID_ABI/";
if [ "$RELEASE" = "1" ]; then
MEDIALIBRARY_MODE=--disable-debug
MEDIALIBRARY_MODE=--disable-debug
fi
if [ ! -e ./config.h -o "$RELEASE" = "1" ]; then
../bootstrap
../configure \
../bootstrap
../configure \
--host=$TARGET_TUPLE \
--disable-shared \
${MEDIALIBRARY_MODE} \
@ -144,7 +144,7 @@ if [ ! -e ./config.h -o "$RELEASE" = "1" ]; then
SQLITE_LIBS="-L$MEDIALIBRARY_MODULE_DIR/$SQLITE_RELEASE/build-$ANDROID_ABI/.libs -lsqlite3" \
SQLITE_CFLAGS="-I$MEDIALIBRARY_MODULE_DIR/$SQLITE_RELEASE" \
AR="${CROSS_TOOLS}ar"
avlc_checkfail "medialibrary: autoconf failed"
avlc_checkfail "medialibrary: autoconf failed"
fi
############
@ -165,15 +165,15 @@ MEDIALIBRARY_LDLIBS="$VLC_OUT_LDLIBS \
-L${NDK_LIB_DIR} -lc++abi ${NDK_LIB_UNWIND}"
$NDK_BUILD -C medialibrary \
APP_STL="c++_shared" \
LOCAL_CPP_FEATURES="rtti exceptions" \
APP_BUILD_SCRIPT=jni/Android.mk \
APP_PLATFORM=android-${ANDROID_API} \
APP_ABI=${ANDROID_ABI} \
NDK_PROJECT_PATH=jni \
NDK_TOOLCHAIN_VERSION=clang \
MEDIALIBRARY_LDLIBS="${MEDIALIBRARY_LDLIBS}" \
MEDIALIBRARY_INCLUDE_DIR=${MEDIALIBRARY_BUILD_DIR}/include \
NDK_DEBUG=${NDK_DEBUG}
APP_STL="c++_shared" \
LOCAL_CPP_FEATURES="rtti exceptions" \
APP_BUILD_SCRIPT=jni/Android.mk \
APP_PLATFORM=android-${ANDROID_API} \
APP_ABI=${ANDROID_ABI} \
NDK_PROJECT_PATH=jni \
NDK_TOOLCHAIN_VERSION=clang \
MEDIALIBRARY_LDLIBS="${MEDIALIBRARY_LDLIBS}" \
MEDIALIBRARY_INCLUDE_DIR=${MEDIALIBRARY_BUILD_DIR}/include \
NDK_DEBUG=${NDK_DEBUG}
avlc_checkfail "nkd-build medialibrary failed"

4
medialibrary/src/org/videolan/medialibrary/media/VideoGroupImpl.java

@ -64,7 +64,9 @@ public class VideoGroupImpl extends VideoGroup {
@Override
public boolean rename(String name) {
final Medialibrary ml = Medialibrary.getInstance();
return ml.isInitiated() && nativeGroupRename(ml, mId, name);
boolean newNameSet = ml.isInitiated() && nativeGroupRename(ml, mId, name);
if (newNameSet) setTitle(name);
return newNameSet;
}
@Override

Loading…
Cancel
Save