diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/fragment/NowPlayingFragment.java b/ultrasonic/src/main/java/org/moire/ultrasonic/fragment/NowPlayingFragment.java index 04e26cf1..862de55c 100644 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/fragment/NowPlayingFragment.java +++ b/ultrasonic/src/main/java/org/moire/ultrasonic/fragment/NowPlayingFragment.java @@ -192,7 +192,7 @@ public class NowPlayingFragment extends Fragment { { if (deltaY < 0) { - nowPlayingEventDistributor.getValue().RaiseNowPlayingDismissedEvent(); + nowPlayingEventDistributor.getValue().raiseNowPlayingDismissedEvent(); return false; } if (deltaY > 0) diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/service/MediaPlayerService.java b/ultrasonic/src/main/java/org/moire/ultrasonic/service/MediaPlayerService.java index e96572df..76608c5d 100644 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/service/MediaPlayerService.java +++ b/ultrasonic/src/main/java/org/moire/ultrasonic/service/MediaPlayerService.java @@ -285,11 +285,11 @@ public class MediaPlayerService extends Service if (currentPlaying != null) { updateNotification(localMediaPlayer.playerState, currentPlaying); - nowPlayingEventDistributor.getValue().RaiseShowNowPlayingEvent(); + nowPlayingEventDistributor.getValue().raiseShowNowPlayingEvent(); } else { - nowPlayingEventDistributor.getValue().RaiseHideNowPlayingEvent(); + nowPlayingEventDistributor.getValue().raiseHideNowPlayingEvent(); stopForeground(true); localMediaPlayer.clearRemoteControl(); isInForeground = false; @@ -501,12 +501,12 @@ public class MediaPlayerService extends Service if (playerState == PlayerState.STARTED || playerState == PlayerState.PAUSED) { updateNotification(playerState, currentPlaying); - nowPlayingEventDistributor.getValue().RaiseShowNowPlayingEvent(); + nowPlayingEventDistributor.getValue().raiseShowNowPlayingEvent(); } } else { - nowPlayingEventDistributor.getValue().RaiseHideNowPlayingEvent(); + nowPlayingEventDistributor.getValue().raiseHideNowPlayingEvent(); stopForeground(true); localMediaPlayer.clearRemoteControl(); isInForeground = false; diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/AppPermanentStorageModule.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/AppPermanentStorageModule.kt index ab71a552..e22dd105 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/AppPermanentStorageModule.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/AppPermanentStorageModule.kt @@ -12,6 +12,9 @@ import org.moire.ultrasonic.util.Util const val SP_NAME = "Default_SP" +/** + * This Koin module contains registration of classes related to permanent storage + */ val appPermanentStorage = module { single(named(SP_NAME)) { Util.getPreferences(androidContext()) } diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/ApplicationModule.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/ApplicationModule.kt index 8137109d..7b726ba0 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/ApplicationModule.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/ApplicationModule.kt @@ -8,6 +8,9 @@ import org.moire.ultrasonic.util.NowPlayingEventDistributor import org.moire.ultrasonic.util.PermissionUtil import org.moire.ultrasonic.util.ThemeChangedEventDistributor +/** + * This Koin module contains the registration of general classes needed for Ultrasonic + */ val applicationModule = module { single { ActiveServerProvider(get(), androidContext()) } single { ImageLoaderProvider(androidContext()) } diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/BaseNetworkModule.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/BaseNetworkModule.kt index 65287cf8..7a56c607 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/BaseNetworkModule.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/BaseNetworkModule.kt @@ -4,7 +4,7 @@ import okhttp3.OkHttpClient import org.koin.dsl.module /** - * Provides base network dependencies. + * This Koin module provides base network dependencies. */ val baseNetworkModule = module { single { OkHttpClient.Builder().build() } diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/DirectoriesModule.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/DirectoriesModule.kt index 231d5f19..5e9b415e 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/DirectoriesModule.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/DirectoriesModule.kt @@ -5,6 +5,9 @@ import org.koin.dsl.module import org.moire.ultrasonic.cache.AndroidDirectories import org.moire.ultrasonic.cache.Directories +/** + * This Koin module contains the registration for Directories + */ val directoriesModule = module { single { AndroidDirectories(get()) } bind Directories::class } diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/FeatureFlagsModule.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/FeatureFlagsModule.kt index 16c715e8..303f058a 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/FeatureFlagsModule.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/FeatureFlagsModule.kt @@ -4,6 +4,9 @@ import org.koin.android.ext.koin.androidContext import org.koin.dsl.module import org.moire.ultrasonic.featureflags.FeatureStorage +/** + * This Koin module contains the registration for the Feature Flags + */ val featureFlagsModule = module { factory { FeatureStorage(androidContext()) } } diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/MediaPlayerModule.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/MediaPlayerModule.kt index bec8a8c0..33cddf3e 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/MediaPlayerModule.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/MediaPlayerModule.kt @@ -13,6 +13,9 @@ import org.moire.ultrasonic.service.MediaPlayerControllerImpl import org.moire.ultrasonic.service.MediaPlayerLifecycleSupport import org.moire.ultrasonic.util.ShufflePlayBuffer +/** + * This Koin module contains the registration of classes related to the media player + */ val mediaPlayerModule = module { single { MediaPlayerControllerImpl(androidContext(), get(), get(), get(), get(), get()) diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/MusicServiceModule.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/MusicServiceModule.kt index 92e604a6..06e01df4 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/MusicServiceModule.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/MusicServiceModule.kt @@ -27,6 +27,9 @@ import org.moire.ultrasonic.subsonic.VideoPlayer import org.moire.ultrasonic.subsonic.loader.image.SubsonicImageLoader import org.moire.ultrasonic.util.Constants +/** + * This Koin module contains the registration of classes related to the Music Services + */ internal const val ONLINE_MUSIC_SERVICE = "OnlineMusicService" internal const val OFFLINE_MUSIC_SERVICE = "OfflineMusicService" diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/fragment/EditServerFragment.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/fragment/EditServerFragment.kt index 1c0ee6c8..9b6c031e 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/fragment/EditServerFragment.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/fragment/EditServerFragment.kt @@ -30,6 +30,9 @@ import org.moire.ultrasonic.util.ModalBackgroundTask import org.moire.ultrasonic.util.Util import timber.log.Timber +/** + * Displays a form where server settings can be created / edited + */ class EditServerFragment : Fragment(), OnBackPressedHandler { companion object { const val EDIT_SERVER_INTENT_INDEX = "index" diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/fragment/FragmentTitle.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/fragment/FragmentTitle.kt index 08e3a8c4..231b06cf 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/fragment/FragmentTitle.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/fragment/FragmentTitle.kt @@ -3,10 +3,13 @@ package org.moire.ultrasonic.fragment import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.Fragment +/** + * Contains utility functions related to Fragment title handling + */ class FragmentTitle { companion object { fun setTitle(fragment: Fragment, title: CharSequence?) { - (fragment.activity as AppCompatActivity).supportActionBar?.setTitle(title) + (fragment.activity as AppCompatActivity).supportActionBar?.title = title } fun setTitle(fragment: Fragment, id: Int) { @@ -16,17 +19,5 @@ class FragmentTitle { fun getTitle(fragment: Fragment): CharSequence? { return (fragment.activity as AppCompatActivity).supportActionBar?.title } - - fun setSubtitle(fragment: Fragment, title: CharSequence?) { - (fragment.activity as AppCompatActivity).supportActionBar?.setSubtitle(title) - } - - fun setSubtitle(fragment: Fragment, id: Int) { - (fragment.activity as AppCompatActivity).supportActionBar?.setSubtitle(id) - } - - fun getSubtitle(fragment: Fragment): CharSequence? { - return (fragment.activity as AppCompatActivity).supportActionBar?.subtitle - } } } diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/fragment/SelectArtistFragment.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/fragment/SelectArtistFragment.kt index 526684e5..6c851f5c 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/fragment/SelectArtistFragment.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/fragment/SelectArtistFragment.kt @@ -24,6 +24,9 @@ import org.moire.ultrasonic.subsonic.ImageLoaderProvider import org.moire.ultrasonic.util.Constants import org.moire.ultrasonic.util.Util +/** + * Displays the list of Artists from the media library + */ class SelectArtistFragment : Fragment() { private val activeServerProvider: ActiveServerProvider by inject() private val serverSettingsModel: ServerSettingsModel by viewModel() @@ -166,79 +169,79 @@ class SelectArtistFragment : Fragment() { downloadHandler.downloadRecursively( this, artist.id, - false, - false, - true, - false, - false, - false, - false, - true + save = false, + append = false, + autoPlay = true, + shuffle = false, + background = false, + playNext = false, + unpin = false, + isArtist = true ) R.id.artist_menu_play_next -> downloadHandler.downloadRecursively( this, artist.id, - false, - false, - true, - true, - false, - true, - false, - true + save = false, + append = false, + autoPlay = true, + shuffle = true, + background = false, + playNext = true, + unpin = false, + isArtist = true ) R.id.artist_menu_play_last -> downloadHandler.downloadRecursively( this, artist.id, - false, - true, - false, - false, - false, - false, - false, - true + save = false, + append = true, + autoPlay = false, + shuffle = false, + background = false, + playNext = false, + unpin = false, + isArtist = true ) R.id.artist_menu_pin -> downloadHandler.downloadRecursively( this, artist.id, - true, - true, - false, - false, - false, - false, - false, - true + save = true, + append = true, + autoPlay = false, + shuffle = false, + background = false, + playNext = false, + unpin = false, + isArtist = true ) R.id.artist_menu_unpin -> downloadHandler.downloadRecursively( this, artist.id, - false, - false, - false, - false, - false, - false, - true, - true + save = false, + append = false, + autoPlay = false, + shuffle = false, + background = false, + playNext = false, + unpin = true, + isArtist = true ) R.id.artist_menu_download -> downloadHandler.downloadRecursively( this, artist.id, - false, - false, - false, - false, - true, - false, - false, - true + save = false, + append = false, + autoPlay = false, + shuffle = false, + background = true, + playNext = false, + unpin = false, + isArtist = true ) } return true diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/fragment/ServerSelectorFragment.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/fragment/ServerSelectorFragment.kt index a9ea9c01..a7093210 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/fragment/ServerSelectorFragment.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/fragment/ServerSelectorFragment.kt @@ -23,6 +23,9 @@ import org.moire.ultrasonic.service.MediaPlayerController import org.moire.ultrasonic.util.Util import timber.log.Timber +/** + * Displays the list of configured servers, they can be selected or edited + */ class ServerSelectorFragment : Fragment() { companion object { const val SERVER_SELECTOR_MANAGE_MODE = "manageMode" diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/service/MusicServiceFactory.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/service/MusicServiceFactory.kt index d872ee9a..06ba1529 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/service/MusicServiceFactory.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/service/MusicServiceFactory.kt @@ -24,7 +24,6 @@ import org.koin.core.component.get import org.koin.core.context.loadKoinModules import org.koin.core.context.unloadKoinModules import org.koin.core.qualifier.named -import org.moire.ultrasonic.cache.Directories import org.moire.ultrasonic.data.ActiveServerProvider import org.moire.ultrasonic.di.OFFLINE_MUSIC_SERVICE import org.moire.ultrasonic.di.ONLINE_MUSIC_SERVICE @@ -50,10 +49,4 @@ object MusicServiceFactory : KoinComponent { unloadKoinModules(musicServiceModule) loadKoinModules(musicServiceModule) } - - @JvmStatic - fun getServerId() = get(named("ServerID")) - - @JvmStatic - fun getDirectories() = get() } diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/service/RESTMusicService.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/service/RESTMusicService.kt index 495790a5..88646466 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/service/RESTMusicService.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/service/RESTMusicService.kt @@ -65,6 +65,7 @@ import org.moire.ultrasonic.util.Util import timber.log.Timber /** + * This Music Service implementation connects to a server using the Subsonic REST API * @author Sindre Mehus */ open class RESTMusicService( diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/subsonic/DownloadHandler.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/subsonic/DownloadHandler.kt index e67c96dd..1468fb2c 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/subsonic/DownloadHandler.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/subsonic/DownloadHandler.kt @@ -15,11 +15,14 @@ import org.moire.ultrasonic.util.EntryByDiscAndTrackComparator import org.moire.ultrasonic.util.ModalBackgroundTask import org.moire.ultrasonic.util.Util +/** + * Retrieves a list of songs and adds them to the now playing list + */ class DownloadHandler( val mediaPlayerController: MediaPlayerController, val networkAndStorageChecker: NetworkAndStorageChecker ) { - private val MAX_SONGS = 500 + private val maxSongs = 500 fun download( fragment: Fragment, @@ -102,16 +105,16 @@ class DownloadHandler( fragment, id, name, - false, - false, - save, - append, - autoplay, - shuffle, - background, - playNext, - unpin, - false + isShare = false, + isDirectory = false, + save = save, + append = append, + autoPlay = autoplay, + shuffle = shuffle, + background = background, + playNext = playNext, + unpin = unpin, + isArtist = false ) } @@ -131,16 +134,16 @@ class DownloadHandler( fragment, id, name, - true, - false, - save, - append, - autoplay, - shuffle, - background, - playNext, - unpin, - false + isShare = true, + isDirectory = false, + save = save, + append = append, + autoPlay = autoplay, + shuffle = shuffle, + background = background, + playNext = playNext, + unpin = unpin, + isArtist = false ) } @@ -174,7 +177,7 @@ class DownloadHandler( ) } - fun downloadRecursively( + private fun downloadRecursively( fragment: Fragment, id: String, name: String?, @@ -232,18 +235,22 @@ class DownloadHandler( parent: MusicDirectory, songs: MutableList ) { - if (songs.size > MAX_SONGS) { + if (songs.size > maxSongs) { return } - for (song in parent.getChildren(false, true)) { + for (song in parent.getChildren(includeDirs = false, includeFiles = true)) { if (!song.isVideo) { songs.add(song) } } val musicService = getMusicService(activity) - for ((id1, _, _, title) in parent.getChildren(true, false)) { - var root: MusicDirectory - root = if ( + for ( + (id1, _, _, title) in parent.getChildren( + includeDirs = true, + includeFiles = false + ) + ) { + val root: MusicDirectory = if ( !isOffline(activity) && Util.getShouldUseId3Tags(activity) ) musicService.getAlbum(id1, title, false, activity) @@ -257,7 +264,7 @@ class DownloadHandler( id: String, songs: MutableCollection ) { - if (songs.size > MAX_SONGS) { + if (songs.size > maxSongs) { return } val musicService = getMusicService(activity) diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/subsonic/ImageLoaderProvider.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/subsonic/ImageLoaderProvider.kt index 6874fcd8..fb1a0ebc 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/subsonic/ImageLoaderProvider.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/subsonic/ImageLoaderProvider.kt @@ -9,6 +9,9 @@ import org.moire.ultrasonic.util.ImageLoader import org.moire.ultrasonic.util.LegacyImageLoader import org.moire.ultrasonic.util.Util +/** + * Handles the lifetime of the Image Loader + */ class ImageLoaderProvider(val context: Context) { private var imageLoader: ImageLoader? = null @@ -32,13 +35,13 @@ class ImageLoaderProvider(val context: Context) { ) val isNewImageLoaderEnabled = get(FeatureStorage::class.java) .isFeatureEnabled(Feature.NEW_IMAGE_DOWNLOADER) - if (isNewImageLoaderEnabled) { - imageLoader = SubsonicImageLoaderProxy( + imageLoader = if (isNewImageLoaderEnabled) { + SubsonicImageLoaderProxy( legacyImageLoader, get(SubsonicImageLoader::class.java) ) } else { - imageLoader = legacyImageLoader + legacyImageLoader } imageLoader!!.startImageLoader() } diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/subsonic/NetworkAndStorageChecker.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/subsonic/NetworkAndStorageChecker.kt index 458a49ab..0de9e84c 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/subsonic/NetworkAndStorageChecker.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/subsonic/NetworkAndStorageChecker.kt @@ -5,6 +5,9 @@ import org.moire.ultrasonic.R import org.moire.ultrasonic.data.ActiveServerProvider.Companion.isOffline import org.moire.ultrasonic.util.Util +/** + * Utility class for checking the availability of the network and storage + */ class NetworkAndStorageChecker(val context: Context) { fun warnIfNetworkOrStorageUnavailable() { if (!Util.isExternalStoragePresent()) { diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/subsonic/ShareHandler.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/subsonic/ShareHandler.kt index 77be09fe..1710038f 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/subsonic/ShareHandler.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/subsonic/ShareHandler.kt @@ -23,6 +23,9 @@ import org.moire.ultrasonic.util.TimeSpan import org.moire.ultrasonic.util.TimeSpanPicker import org.moire.ultrasonic.util.Util +/** + * This class handles sharing items in the media library + */ class ShareHandler(val context: Context) { private var shareDescription: EditText? = null private var timeSpanPicker: TimeSpanPicker? = null @@ -93,7 +96,7 @@ class ShareHandler(val context: Context) { fragment.activity?.startActivity( Intent.createChooser( intent, - context.getResources().getString(R.string.share_via) + context.resources.getString(R.string.share_via) ) ) } diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/subsonic/VideoPlayer.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/subsonic/VideoPlayer.kt index adda3920..113ba68a 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/subsonic/VideoPlayer.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/subsonic/VideoPlayer.kt @@ -5,6 +5,9 @@ import org.moire.ultrasonic.R import org.moire.ultrasonic.domain.MusicDirectory import org.moire.ultrasonic.util.Util +/** + * This utility class helps starting video playback + */ class VideoPlayer(val context: Context) { fun playVideo(entry: MusicDirectory.Entry?) { if (!Util.isNetworkConnected(context)) { diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/NowPlayingEventDistributor.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/NowPlayingEventDistributor.kt index 28f426f9..0d19903e 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/NowPlayingEventDistributor.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/NowPlayingEventDistributor.kt @@ -1,7 +1,11 @@ package org.moire.ultrasonic.util +/** + * This class distributes Now Playing related events to its subscribers. + * It is a primitive implementation of a pub-sub event bus + */ class NowPlayingEventDistributor { - var eventListenerList: MutableList = + private var eventListenerList: MutableList = listOf().toMutableList() fun subscribe(listener: NowPlayingEventListener) { @@ -12,15 +16,15 @@ class NowPlayingEventDistributor { eventListenerList.remove(listener) } - fun RaiseShowNowPlayingEvent() { + fun raiseShowNowPlayingEvent() { eventListenerList.forEach { listener -> listener.onShowNowPlaying() } } - fun RaiseHideNowPlayingEvent() { + fun raiseHideNowPlayingEvent() { eventListenerList.forEach { listener -> listener.onHideNowPlaying() } } - fun RaiseNowPlayingDismissedEvent() { + fun raiseNowPlayingDismissedEvent() { eventListenerList.forEach { listener -> listener.onDismissNowPlaying() } } } diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/NowPlayingEventListener.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/NowPlayingEventListener.kt index 84487c4e..3f4bd75e 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/NowPlayingEventListener.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/NowPlayingEventListener.kt @@ -1,5 +1,8 @@ package org.moire.ultrasonic.util +/** + * Callback interface for Now Playing event subscribers + */ interface NowPlayingEventListener { fun onDismissNowPlaying() fun onHideNowPlaying() diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/ThemeChangedEventDistributor.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/ThemeChangedEventDistributor.kt index 4d429387..bdce05ab 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/ThemeChangedEventDistributor.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/ThemeChangedEventDistributor.kt @@ -1,5 +1,9 @@ package org.moire.ultrasonic.util +/** + * This class distributes Theme change related events to its subscribers. + * It is a primitive implementation of a pub-sub event bus + */ class ThemeChangedEventDistributor { var eventListenerList: MutableList = listOf().toMutableList() diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/ThemeChangedEventListener.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/ThemeChangedEventListener.kt index 6094e92e..0528a7f9 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/ThemeChangedEventListener.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/ThemeChangedEventListener.kt @@ -1,5 +1,9 @@ package org.moire.ultrasonic.util + +/** + * Callback interface for Theme change event subscribers + */ interface ThemeChangedEventListener { fun onThemeChanged() } diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/view/SongView.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/view/SongView.kt index aaa78e0d..48441f58 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/view/SongView.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/view/SongView.kt @@ -340,8 +340,8 @@ class SongView(context: Context) : UpdateView(context), Checkable { fun maximizeOrMinimize() { isMaximized = !isMaximized - viewHolder?.title?.setSingleLine(!isMaximized) - viewHolder?.artist?.setSingleLine(!isMaximized) + viewHolder?.title?.isSingleLine = !isMaximized + viewHolder?.artist?.isSingleLine = !isMaximized } enum class ImageType {