Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • videolan/vlc-android
  • thresh/vlc-android
  • Dekans/vlc-android
  • robUx4/vlc-android
  • tguillem/vlc-android
  • Corbax/vlc-android
  • judeosby/vlc-android
  • chouquette/vlc-android
  • washingtonmurphy93/vlc-android
  • wipawanbeadklang540/vlc-android
  • xcorail/vlc-android
  • Aza/vlc-android
  • Skantes/vlc-android
  • filipjares/vlc-android
  • kazemihabib/vlc-android
  • amq10x/vlc-android
  • qadrian370/vlc-android
  • shivanshs9/vlc-android
  • vitaliyg2/vlc-android
  • orgads/vlc-android
  • rom1v/vlc-android
  • evidence/vlc-android
  • lk888/vlc-android
  • Klaus81/vlc-android
  • EwoutH/vlc-android
  • XilasZ/vlc-android
  • pawelpablo1975/vlc-android
  • uae2ae/vlc-android
  • Garf/vlc-android
  • abetatsunori7/vlc-android
  • ePirat/vlc-android
  • magsoft/vlc-android
  • quink/vlc-android
  • Ektos974/vlc-android
  • CymGen30/vlc-android
  • b1ue/vlc-android
  • alessiavalenti8/vlc-android
  • bars27101982/vlc-android
  • billybanda18/vlc-android
  • dklvip/vlc-android
  • sherylynn/vlc-android
  • ramcoach5/vlc-android
  • takise/vlc-android
  • peibolovedie/vlc-android
  • AMHeijboer/vlc-android
  • dahburj/vlc-android
  • gobennyb/vlc-android
  • masripmasrip824/vlc-android
  • bubu/vlc-android
  • tmk907/vlc-android
  • gorbahaaa/vlc-android
  • govind3321/vlc-android
  • jamieboyer42818/vlc-android
  • mrtakilapop/vlc-android
  • kazikarter90/vlc-android
  • chunyie771/vlc-android
  • nop404/vlc-android
  • hcalzazperz/vlc-android
  • zagwojtek69/vlc-android
  • nikonnick24/vlc-android
  • gmohiuddin215/vlc-android
  • stheinthan31/vlc-android
  • rogelioloreto29/vlc-android
  • philippestcyr5/vlc-android
  • Happyheather20/vlc-android
  • jimbobmcgee/vlc-android
  • mohwie/vlc-android
  • HeartBeat1608/vlc-android
  • jahan/vlc-android
  • Kevo1987/vlc-android
  • rrangel3584/vlc-android
  • xfridrich/vlc-android
  • devswami23/vlc-android
  • Isira-Seneviratne/vlc-android
  • PartyPhone22/vlc-android
  • kmajeshkrishnan/vlc-android
  • ramirotorresjr/vlc-android
  • aaronsalas469/vlc-android
  • arnan.np31/vlc-android
  • hkosacki/vlc-android
  • mg0691872/vlc-android
  • louregni/vlc-android
  • ritmapp/vlc-android
  • diegofn/vlc-android
  • s-ayush2903/vlc-android
  • chrisbohn1984/vlc-android
  • alexandre-janniaux/vlc-android
  • optimumpr/vlc-android
  • chirag-jn/vlc-android
  • e9ab98e991ab/vlc-android
  • suvDev/vlc-android
  • killthelord/vlc-android
  • Phoenix/vlc-android
  • soriyallc/vlc-android
  • tda1009/vlc-android
  • rhstone/vlc-android
  • ltnokiago/vlc-android
  • elbrujo1987/vlc-android
  • m1s4k1/vlc-android
  • mdc/vlc-android
  • arnaudj/vlc-android
  • abhinavmarwaha/vlc-android
  • dali546/vlc-android
  • Jeffset/vlc-android
  • megan30/vlc-android
  • lizhengdao/vlc-android
  • YajTPG/vlc-android
  • halcyon/vlc-android
  • ilya.yanok/vlc-android
  • jeramydhallmon/vlc-android
  • tijoemecano77/vlc-android
  • cjcj125125/vlc-android
  • dejan2609/vlc-android
  • JATIN2111999/vlc-android
  • imrohitkumar/vlc-android
  • sagudev/vlc-android
  • ILoveLin/vlc-android
  • tfighiera/vlc-android
  • snehil101/vlc-android
  • MKornelsen/vlc-android
  • m/vlc-android
  • core1024/vlc-android
  • vadimdolgachev/vlc-android
  • Kk77539/vlc-android
  • linzj/vlc-android
  • dantalian-pv/vlc-android
  • admkhalid/vlc-android
  • yaron/vlc-android
  • kn21091974/vlc-android
  • mylove1302/vlc-android
  • roblav96/vlc-android
  • alabiaga/vlc-android
  • kmnaveen101/vlc-android
  • nikiforoff1407/vlc-android
  • Android-Jester/vlc-android
  • frieda.rtwski/vlc-android
  • glaciers7506/vlc-android
  • rahul-gill/vlc-android
  • gaoxugang/vlc-android
  • Rishavgupta12345/vlc-android
  • dinho991556460/vlc-android
  • lighterowl/vlc-android
  • mary-kate/vlc-android
  • adnank20216/vlc-android
  • anthonylgutierrez79/vlc-android
  • Heliottw/vlc-android
  • mu1zix.ft3/vlc-android
  • yvesmaltais1212/vlc-android
  • ereme/vlc-android
  • jhonypalomino829/vlc-android
  • mx1up/vlc-android
  • sjwaddy/vlc-android
  • MohitMandalia/vlc-android
  • temaershov/vlc-android
  • js6pak/vlc-android
  • mishikallu/vlc-android
  • irfanmumtaz008/vlc-android
  • smurfohrachie/vlc-android
  • Goooler/vlc-android
  • eldo203050/vlc-android
  • dejesuszeus99/vlc-android
  • mfkl/vlc-android
  • Samfun75/vlc-android
  • markg85/vlc-android-ipfs
  • doktamelek911/vlc-android
  • wikwity/vlc-android
  • aangelmaker/vlc-android
  • krawczykradek119/vlc-android
  • ylz18180813163/vlc-android
  • galaxy9sx3/vlc-android
  • huajie2020/vlc-android
  • XuanTung95/vlc-android
  • kl/vlc-android
  • melihyolcu83/vlc-android
  • rt1shnik/vlc-android
  • jerryboy307/vlc-android
  • ikeuzochukwu6/vlc-android
  • patrikgolis/vlc-android
  • Ismavv/vlc-android
  • clementosumo/vlc-android
  • joshlamp66/vlc-android
  • nkmoyonyathiericyounge/vlc-android
  • DanTm99/vlc-android
  • Jeffrow41/vlc-android
  • fromphfr/vlc-android
  • 16project/vlc-android
  • Tomas8874/vlc-android
  • fixxxer87/vlc-android
  • sanjay/vlc-android
  • franciscojrp/vlc-android
  • cashellauswaus23/vlc-android
  • hengwu0/vlc-android
  • naythu2020rain/vlc-android
  • TongtengInhole/vlc-android
  • pupdoggy666/vlc-android
  • jcj921013/vlc-android
  • Gc6026/vlc-android
  • crijojc/vlc-android
  • mdrewight/vlc-android
  • davidhaywood0782/vlc-android
  • jbschtt/vlc-android
  • macfarlandcamel/vlc-android
  • syazairi/vlc-android
  • Commander01/vlc-android
  • baileyterry014/vlc-android
  • rodrickfranklin38/vlc-android
  • diego1245hernb/vlc-android
  • anton.canada/vlc-android
  • egazaekb/vlc-android
  • Marissa111113/vlc-android
  • jeinerbruno2/vlc-android
  • wehnie13/vlc-android
  • ozill87/vlc-android
  • legionfso/vlc-android
  • anazahirajoel/vlc-android
  • naomirojas1227/vlc-android
  • xbao/vlc-android
  • antoni.kozubek/vlc-android
  • pajela8482/vlc-android
  • karlfandango55/vlc-android
  • ruanbester07/vlc-android
  • chigita73/vlc-android
  • giu.pat6/vlc-android
  • Aura/vlc-android
  • marcwabo/vlc-android
  • contact.adgrafix/vlc-android
  • exlaverdad/vlc-android
  • simon.marquis88/vlc-android
  • youngkinsamantha421/vlc-android
  • edgard1161/vlc-android
  • agzx77/vlc-android
  • ha7204993/vlc-android
  • alghazwani.jar.6090/vlc-android
  • zrowton1206/vlc-android
  • darek1979513/vlc-android
  • matthiaskett18198/vlc-android
  • kubadyr77/vlc-android
  • romanstudeny1982/vlc-android
  • kumar107375/vlc-android
  • schong0525/vlc-android
  • Kt/vlc-android
  • jovelyn.esconde125/vlc-android
  • corriemacbarnard/vlc-android
  • apisbg91/vlc-android
  • yyusea/vlc-android
  • protechq88/vlc-android
  • rmangaraman/vlc-android
  • soutomikel/vlc-android
  • goregladaleksej5/vlc-android
  • tao/vlc-android
  • aruiz595/vlc-android
  • horvathpeter1202/vlc-android
  • litteh82/vlc-android
  • kerriochoa96/vlc-android
  • skshemul2022/vlc-android
  • popy/vlc-android
  • mizadpanahdev/vlc-android
  • pinarim2035/vlc-android
  • davidgooch1127/vlc-android
  • NyanCatTW1/vlc-android
  • Pendynurcahyo/vlc-android
  • fcartegnie/vlc-android
  • xiaoxiao921/vlc-android
  • rjtoell/vlc-android
  • devanshu6445/vlc-android
  • DopeDo69/vlc-android
  • quimsical/vlc-android
  • nickita.koltsoff/vlc-android
  • zeestander8617/vlc-android
  • alexsonarin06/vlc-android
  • minh189999h/vlc-android
  • JonnycatMeow/vlc-android
  • pup.ragnarok.1984/vlc-android2
  • jlcalderon13/vlc-android
  • franciszekk51214/vlc-android
  • yinsheng996/vlc-android
  • KenN3RD/vlc-android
  • leogps/vlc-android
  • alicuteo0407/vlc-android
  • MessirVoland/vlc-android
  • brett2uk/vlc-android
  • thomas.hermes/vlc-android
  • dgyudin/vlc-android
  • anuoshemohammad/vlc-android
  • r7truong/vlc-android
  • aaa1115910/vlc-android
  • arunkennedy78/vlc-android
  • nicholaszarra0069/vlc-android
  • georgipetrovdochev/vlc-android
  • Nikhil-z/vlc-android
  • misb1033/vlc-android
  • ktcoooot1/vlc-android
  • manmuc5/vlc-android
  • ahwhatisinttaken/vlc-android
  • m.nozka90/vlc-android
  • kabeermuhammad124319/vlc-android
  • ANGELONCE/vlc-android
  • manstabuk/vlc-android
  • yajcoca/vlc-android
  • dreamscell83/vlc-android
  • oldsssteveo/vlc-android
  • c0ff330k/vlc-android
  • ZhangXinmin528/vlc-android
  • lacsimarnald09/vlc-android
  • boykaisaac758/vlc-android
  • ooseidesmond/vlc-android
  • andresbott/vlc-android
  • yolandawanttoplay/vlc-android
  • lapaz17/vlc-android
  • sillyearl0138/vlc-android
  • NF-Repo/vlc-android
  • aaasg4001/vlc-android
  • mongia.puneet/vlc-android
  • slablaykon/vlc-android
  • Shabgardtanha1111/vlc-android
  • Benjamin_Loison/vlc-android
  • ashishami2002/vlc-android
  • Niram7777/vlc-android
  • Yashraj254/vlc-android
  • Choucroute_melba/vlc-android
  • Soete/vlc-android
  • MangalK/vlc-android
  • mohak2003/vlc-android
  • advait-0/vlc-android
  • McLP/vlc-android
  • fhuber/vlc-android
  • sami-sweng/vlc-android
  • josiahcarlson/vlc-android
  • mzych/vlc-android
  • amarradi/vlc-android
330 results
Show changes
Commits on Source (6)
Showing
with 147 additions and 82 deletions
......@@ -9,7 +9,7 @@
<body id="top" style="background-color: #EBEBEE">
<h1>VLC for Android</h1>
<p>Copyleft &copy; 1996-2018 VideoLAN, VLC authors</p>
<p>Copyleft &copy; 1996-2019 VideoLAN, VLC authors</p>
<div>
<h2>License</h2>
<p>VLC for Android is licensed under the <a href="#gpl">GNU General Public License, version 3 or later</a> (herein referred to as GPL).</p>
......
......@@ -59,19 +59,19 @@
<!-- Image loading is handled by org.videolan.vlc.gui.helpers.ImageLoader.loadImage() -->
<ImageView
android:id="@+id/media_cover"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_gravity="center"
android:background="@{cover}"
android:visibility="@{(item.getItemType() &amp; (MediaLibraryItem.TYPE_ALBUM|MediaLibraryItem.TYPE_ARTIST|MediaLibraryItem.TYPE_MEDIA|MediaLibraryItem.TYPE_PLAYLIST)) != 0 ? View.VISIBLE : View.GONE, default=gone}"
tools:srcCompat="@tools:sample/avatars"
vlc:imageWidth="@{imageWidth}"
vlc:layout_constraintDimensionRatio="1"
vlc:layout_constraintEnd_toEndOf="parent"
vlc:layout_constraintStart_toStartOf="parent"
vlc:layout_constraintTop_toTopOf="parent"
vlc:mediaWithWidth="@{item}" />
android:id="@+id/media_cover"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_gravity="center"
android:background="@{cover}"
android:visibility="@{(item.getItemType() &amp; (MediaLibraryItem.TYPE_ALBUM|MediaLibraryItem.TYPE_ARTIST|MediaLibraryItem.TYPE_MEDIA|MediaLibraryItem.TYPE_PLAYLIST)) != 0 ? View.VISIBLE : View.GONE, default=gone}"
tools:srcCompat="@tools:sample/avatars"
vlc:imageWidth="@{imageWidth}"
vlc:layout_constraintDimensionRatio="1"
vlc:layout_constraintEnd_toEndOf="parent"
vlc:layout_constraintStart_toStartOf="parent"
vlc:layout_constraintTop_toTopOf="parent"
vlc:media="@{item}"/>
<!-- TextView must be set to singleLine
......
......@@ -48,10 +48,11 @@
app:layout_constraintStart_toStartOf="parent"
/>
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
<org.videolan.vlc.gui.view.MiniVisualizer
android:layout_width="24dp"
android:layout_height="24dp"
android:id="@+id/playing"
app:bar_color="?attr/player_icon_color"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/item_more"
......
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<import type="org.videolan.vlc.media.MediaUtils" />
<variable
name="bgColor"
type="int" />
<variable
name="media"
type="org.videolan.medialibrary.interfaces.media.AbstractMediaWrapper" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:focusable="true"
android:clickable="true"
android:background="@{bgColor}">
<TextView
android:id="@+id/title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@{MediaUtils.INSTANCE.getMediaTitle(media)}"
android:textColor="@color/grey50"
app:layout_constraintStart_toStartOf="parent"
tools:text="Symphony n°1"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintBottom_toTopOf="@+id/artist"
app:layout_constraintEnd_toStartOf="@+id/playing"
android:layout_marginEnd="8dp"
android:textStyle="bold"
android:layout_marginStart="8dp"
app:layout_constraintVertical_chainStyle="packed"/>
<TextView
android:id="@+id/artist"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@{MediaUtils.INSTANCE.getMediaArtist(context, media)}"
android:textColor="@color/grey50"
tools:text="Beethoven"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/title"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintEnd_toStartOf="@+id/playing"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"/>
<org.videolan.vlc.gui.view.MiniVisualizer
android:layout_width="24dp"
android:layout_height="24dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:id="@+id/playing"
app:bar_color="?attr/player_icon_color"
android:layout_marginBottom="8dp"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginEnd="8dp"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout>
<data>
<import type="org.videolan.vlc.media.MediaUtils" />
<variable
name="bgColor"
type="int" />
<variable
name="media"
type="org.videolan.medialibrary.interfaces.media.AbstractMediaWrapper" />
</data>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="@dimen/half_default_margin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:focusable="true"
android:clickable="true"
android:orientation="vertical"
android:background="@{bgColor}">
<TextView android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@{MediaUtils.INSTANCE.getMediaTitle(media)}"
android:textColor="@color/grey50" />
<TextView android:id="@+id/artist"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@{MediaUtils.INSTANCE.getMediaArtist(context, media)}"
android:textColor="@color/grey50" />
</LinearLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<View
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/visualizer1"
android:layout_margin="1dp"
android:layout_weight="1"/>
<View
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/visualizer2"
android:layout_margin="1dp"
android:layout_weight="1"/>
<View
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/visualizer3"
android:layout_margin="1dp"
android:layout_weight="1"/>
</LinearLayout>
\ No newline at end of file
......@@ -86,6 +86,10 @@
<attr name="overhangSize" format="dimension" />
</declare-styleable>
<declare-styleable name="MiniVisualizer">
<attr name="bar_color" format="reference"/>
</declare-styleable>
<attr name="marginTopContent" format="dimension" />
</resources>
......@@ -43,6 +43,7 @@ import kotlinx.coroutines.*
import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.channels.actor
import org.videolan.libvlc.util.AndroidUtil
import org.videolan.medialibrary.interfaces.AbstractMedialibrary
import org.videolan.vlc.gui.helpers.UiTools
import org.videolan.vlc.gui.helpers.hf.OtgAccess
import org.videolan.vlc.util.*
......@@ -74,7 +75,7 @@ object ExternalMonitor : BroadcastReceiver(), LifecycleObserver, CoroutineScope
}
is MediaUnmounted -> {
delay(100L)
VLCApplication.mlInstance.removeDevice(action.uuid, action.path)
AbstractMedialibrary.getInstance().removeDevice(action.uuid, action.path)
if (storageUnplugged.hasActiveObservers()) storageUnplugged.postValue(action.uri)
}
}
......@@ -176,7 +177,7 @@ object ExternalMonitor : BroadcastReceiver(), LifecycleObserver, CoroutineScope
@ExperimentalCoroutinesApi
@ObsoleteCoroutinesApi
private fun checkNewStorages(ctx: Context) {
if (VLCApplication.mlInstance.isStarted) {
if (AbstractMedialibrary.getInstance().isStarted) {
val scanOpt = if (Settings.showTvUi) ML_SCAN_ON
else Settings.getInstance(ctx).getInt(KEY_MEDIALIBRARY_SCAN, -1)
if (scanOpt == ML_SCAN_ON)
......
......@@ -450,7 +450,7 @@ class PlaybackService : MediaBrowserServiceCompat(), CoroutineScope, LifecycleOw
playlistManager = PlaylistManager(this)
Util.checkCpuCompatibility(this)
medialibrary = VLCApplication.mlInstance
medialibrary = AbstractMedialibrary.getInstance()
if (!medialibrary.isInitiated) registerMedialibrary(null)
detectHeadset = settings.getBoolean("enable_headset_detection", true)
......
......@@ -32,6 +32,7 @@ import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import androidx.core.content.ContextCompat
import kotlinx.coroutines.*
import org.videolan.medialibrary.interfaces.AbstractMedialibrary
import org.videolan.medialibrary.interfaces.media.AbstractMediaWrapper
import org.videolan.vlc.gui.helpers.BitmapUtil
import org.videolan.vlc.gui.video.VideoPlayerActivity
......@@ -87,7 +88,7 @@ class RecommendationsService : IntentService("RecommendationService"), Coroutine
private fun doRecommendations() = launch {
mNotificationManager.cancelAll()
val videoList = withContext(Dispatchers.IO) { VLCApplication.mlInstance.recentVideos }
val videoList = withContext(Dispatchers.IO) { AbstractMedialibrary.getInstance().recentVideos }
if (Util.isArrayEmpty(videoList)) return@launch
for ((id, mediaWrapper) in videoList.withIndex()) {
buildRecommendation(mediaWrapper, id, NotificationManagerCompat.IMPORTANCE_DEFAULT)
......
......@@ -88,7 +88,6 @@ class VLCApplication : Application() {
init {
instance = this
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true)
}
@TargetApi(Build.VERSION_CODES.O)
......@@ -206,9 +205,6 @@ class VLCApplication : Application() {
dataMap.clear()
}
val mlInstance: AbstractMedialibrary
get() = AbstractMedialibrary.getInstance()
/**
* Check if application is currently displayed
* @return true if an activity is displayed, false if app is in background.
......
......@@ -22,6 +22,7 @@ import kotlinx.coroutines.*
import org.videolan.libvlc.Media
import org.videolan.libvlc.util.Extensions
import org.videolan.medialibrary.Tools
import org.videolan.medialibrary.interfaces.AbstractMedialibrary
import org.videolan.medialibrary.interfaces.media.AbstractArtist
import org.videolan.medialibrary.interfaces.media.AbstractMediaWrapper
import org.videolan.medialibrary.media.MediaLibraryItem
......@@ -69,7 +70,7 @@ class InfoActivity : AudioPlayerContainerActivity(), View.OnClickListener, PathA
}
this.item = item
if (item.id == 0L) {
val libraryItem = VLCApplication.mlInstance.getMedia((item as AbstractMediaWrapper).uri)
val libraryItem = AbstractMedialibrary.getInstance().getMedia((item as AbstractMediaWrapper).uri)
if (libraryItem != null)
this.item = libraryItem
}
......
......@@ -117,7 +117,7 @@ class MainActivity : ContentActivity(), ExtensionManagerService.ExtensionManager
/* Reload the latest preferences */
scanNeeded = savedInstanceState == null && settings.getBoolean("auto_rescan", true)
if (BuildConfig.DEBUG) extensionsManager = ExtensionsManager.getInstance()
mediaLibrary = VLCApplication.mlInstance
mediaLibrary = AbstractMedialibrary.getInstance()
val typedValue = TypedValue()
......
......@@ -47,6 +47,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.bottomsheet.BottomSheetBehavior
import kotlinx.coroutines.*
import org.videolan.medialibrary.interfaces.AbstractMedialibrary
import org.videolan.medialibrary.interfaces.media.AbstractMediaWrapper
import org.videolan.medialibrary.interfaces.media.AbstractPlaylist
import org.videolan.medialibrary.media.MediaLibraryItem
......@@ -81,7 +82,7 @@ import java.util.*
open class PlaylistActivity : AudioPlayerContainerActivity(), IEventsHandler, IListEventsHandler, ActionMode.Callback, View.OnClickListener, CtxActionReceiver {
private lateinit var audioBrowserAdapter: AudioBrowserAdapter
private val mediaLibrary = VLCApplication.mlInstance
private val mediaLibrary = AbstractMedialibrary.getInstance()
private lateinit var binding: PlaylistActivityBinding
private var actionMode: ActionMode? = null
private var isPlaylist: Boolean = false
......
......@@ -106,7 +106,7 @@ class PlaylistFragment : BaseAudioBrowser<PlaylistsViewModel>(), SwipeRefreshLay
//size of an item
val spacing = resources.getDimension(R.dimen.kl_half).toInt()
val itemSize = RecyclerSectionItemGridDecoration.getItemSize(requireActivity().getScreenWidth(), nbColumns, spacing)
val itemSize = RecyclerSectionItemGridDecoration.getItemSize(requireActivity().getScreenWidth() - spacing * 2, nbColumns, spacing)
playlistAdapter = AudioBrowserAdapter(MediaLibraryItem.TYPE_PLAYLIST, this, itemSize)
adapter = playlistAdapter
......
......@@ -46,7 +46,7 @@ open class SearchActivity : BaseActivity(), TextWatcher, TextView.OnEditorAction
binding = DataBindingUtil.setContentView(this, R.layout.search_activity)
binding.handler = clickHandler
binding.searchAggregate = SearchAggregate()
medialibrary = VLCApplication.mlInstance
medialibrary = AbstractMedialibrary.getInstance()
if (Intent.ACTION_SEARCH == intent.action || "com.google.android.gms.actions.SEARCH_ACTION" == intent.action) {
val query = intent.getStringExtra(SearchManager.QUERY)
initializeLists()
......
......@@ -33,6 +33,7 @@ import androidx.fragment.app.Fragment
import com.google.android.material.appbar.AppBarLayout
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.ObsoleteCoroutinesApi
import org.videolan.medialibrary.interfaces.AbstractMedialibrary
import org.videolan.vlc.R
import org.videolan.vlc.VLCApplication
import org.videolan.vlc.gui.audio.AudioAlbumsSongsFragment
......@@ -105,7 +106,7 @@ class SecondaryActivity : ContentActivity() {
// Handle item selection
when (item.itemId) {
R.id.ml_menu_refresh -> {
val ml = VLCApplication.mlInstance
val ml = AbstractMedialibrary.getInstance()
if (!ml.isWorking) this.rescan()
return true
}
......
......@@ -230,6 +230,7 @@ class AudioPlayer : Fragment(), PlaylistAdapter.IPlayer, TextWatcher, CoroutineS
drawableSmall.start()
}
playlistAdapter.setCurrentlyPlaying(playing)
binding.playPause.contentDescription = text
binding.headerPlayPause.contentDescription = text
wasPlaying = playing
......
......@@ -25,7 +25,6 @@ package org.videolan.vlc.gui.audio
import android.annotation.TargetApi
import android.content.Context
import android.graphics.drawable.Drawable
import android.os.Build
import android.os.Message
import android.view.LayoutInflater
......@@ -36,8 +35,6 @@ import androidx.annotation.MainThread
import androidx.databinding.DataBindingUtil
import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.RecyclerView
import androidx.vectordrawable.graphics.drawable.Animatable2Compat
import androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.ObsoleteCoroutinesApi
import org.videolan.libvlc.util.AndroidUtil
......@@ -47,6 +44,7 @@ import org.videolan.vlc.VLCApplication
import org.videolan.vlc.databinding.PlaylistItemBinding
import org.videolan.vlc.gui.DiffUtilAdapter
import org.videolan.vlc.gui.helpers.UiTools
import org.videolan.vlc.gui.view.MiniVisualizer
import org.videolan.vlc.interfaces.SwipeDragHelperAdapter
import org.videolan.vlc.media.MediaUtils
import org.videolan.vlc.util.MediaItemDiffCallback
......@@ -59,6 +57,7 @@ import java.util.*
class PlaylistAdapter(private val player: IPlayer) : DiffUtilAdapter<AbstractMediaWrapper, PlaylistAdapter.ViewHolder>(), SwipeDragHelperAdapter {
private var mModel: PlaylistModel? = null
private var currentPlayingVisu: MiniVisualizer? = null
var currentIndex = 0
set(position) {
......@@ -87,30 +86,26 @@ class PlaylistAdapter(private val player: IPlayer) : DiffUtilAdapter<AbstractMed
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val ctx = holder.itemView.context
val media = getItem(position)
holder.binding.media = media
holder.binding.subTitle = MediaUtils.getMediaSubtitle(media)
val drawableNowPlaying = AnimatedVectorDrawableCompat.create(ctx, R.drawable.anim_now_playing)!!
if (currentIndex == position) {
holder.binding.playing.setImageDrawable(drawableNowPlaying)
drawableNowPlaying.start()
drawableNowPlaying.registerAnimationCallback(object : Animatable2Compat.AnimationCallback() {
override fun onAnimationEnd(drawable: Drawable?) {
super.onAnimationEnd(drawable)
drawableNowPlaying.start()
}
})
if (mModel?.playing != false) holder.binding.playing.start() else holder.binding.playing.stop()
holder.binding.playing.visibility = View.VISIBLE
currentPlayingVisu = holder.binding.playing
} else {
holder.binding.playing.setImageDrawable(drawableNowPlaying)
holder.binding.playing.stop()
holder.binding.playing.visibility = View.INVISIBLE
}
holder.binding.executePendingBindings()
}
override fun onDetachedFromRecyclerView(recyclerView: RecyclerView) {
super.onDetachedFromRecyclerView(recyclerView)
currentPlayingVisu = null
}
override fun getItemCount(): Int {
return dataset.size
}
......@@ -218,4 +213,8 @@ class PlaylistAdapter(private val player: IPlayer) : DiffUtilAdapter<AbstractMed
override fun createCB(): DiffCallback<AbstractMediaWrapper> {
return MediaItemDiffCallback()
}
fun setCurrentlyPlaying(playing: Boolean) {
if (playing) currentPlayingVisu?.start() else currentPlayingVisu?.stop()
}
}
......@@ -90,7 +90,7 @@ abstract class MediaBrowserFragment<T : SortableModel> : Fragment(), ActionMode.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mediaLibrary = VLCApplication.mlInstance
mediaLibrary = AbstractMedialibrary.getInstance()
setHasOptionsMenu(!AndroidDevices.isAndroidTv)
}
......