2021-04-22 20:51:12 +02:00
<?xml version="1.0" ?>
<SmellBaseline >
<ManuallySuppressedIssues > </ManuallySuppressedIssues>
<CurrentIssues >
<ID > CommentOverPrivateFunction:EditServerFragment.kt$EditServerFragment$ private fun areFieldsChanged(): Boolean</ID>
<ID > CommentOverPrivateFunction:EditServerFragment.kt$EditServerFragment$ private fun finishActivity()</ID>
<ID > CommentOverPrivateFunction:EditServerFragment.kt$EditServerFragment$ private fun getFields(): Boolean</ID>
<ID > CommentOverPrivateFunction:EditServerFragment.kt$EditServerFragment$ private fun setFields()</ID>
<ID > CommentOverPrivateFunction:EditServerFragment.kt$EditServerFragment$ private fun testConnection()</ID>
<ID > CommentOverPrivateFunction:FileLoggerTree.kt$FileLoggerTree$ private fun getNextLogFile()</ID>
<ID > CommentOverPrivateFunction:FileLoggerTree.kt$FileLoggerTree$ private fun getNumberedFile(next: Boolean)</ID>
<ID > CommentOverPrivateFunction:MediaPlayerService.kt$MediaPlayerService$ private fun buildForegroundNotification( playerState: PlayerState, currentPlaying: DownloadFile? ): Notification</ID>
<ID > CommentOverPrivateFunction:RESTMusicService.kt$RESTMusicService$ @Throws(Exception::class) private fun search2( criteria: SearchCriteria ): SearchResult</ID>
<ID > CommentOverPrivateFunction:RESTMusicService.kt$RESTMusicService$ @Throws(Exception::class) private fun searchOld( criteria: SearchCriteria ): SearchResult</ID>
<ID > CommentOverPrivateFunction:ServerRowAdapter.kt$ServerRowAdapter$ private fun popupMenuItemClick(menuItem: MenuItem, position: Int): Boolean</ID>
<ID > CommentOverPrivateFunction:ServerRowAdapter.kt$ServerRowAdapter$ private fun serverMenuClick(view: View, position: Int)</ID>
<ID > CommentOverPrivateFunction:ServerSelectorFragment.kt$ServerSelectorFragment$ private fun editServer(index: Int)</ID>
<ID > CommentOverPrivateFunction:ServerSelectorFragment.kt$ServerSelectorFragment$ private fun onServerDeleted(index: Int)</ID>
<ID > CommentOverPrivateFunction:ServerSelectorFragment.kt$ServerSelectorFragment$ private fun setActiveServer(index: Int)</ID>
<ID > CommentOverPrivateFunction:ServerSettingsModel.kt$ServerSettingsModel$ private fun loadServerSettingFromPreferences( preferenceId: Int, serverId: Int, settings: SharedPreferences ): ServerSetting?</ID>
<ID > CommentOverPrivateFunction:ServerSettingsModel.kt$ServerSettingsModel$ private suspend fun areIndexesMissing(): Boolean</ID>
<ID > CommentOverPrivateFunction:ServerSettingsModel.kt$ServerSettingsModel$ private suspend fun reindexSettings()</ID>
<ID > ComplexCondition:DownloadHandler.kt$DownloadHandler.< no name provided> $!append & & !playNext & & !unpin & & !background</ID>
<ID > ComplexCondition:FilePickerAdapter.kt$FilePickerAdapter$currentDirectory.absolutePath == "/" || currentDirectory.absolutePath == "/storage" || currentDirectory.absolutePath == "/storage/emulated" || currentDirectory.absolutePath == "/mnt"</ID>
2021-05-09 10:32:58 +02:00
<ID > ComplexCondition:LocalMediaPlayer.kt$LocalMediaPlayer$Util.getGaplessPlaybackPreference() & & Build.VERSION.SDK_INT > = Build.VERSION_CODES.JELLY_BEAN & & ( playerState === PlayerState.STARTED || playerState === PlayerState.PAUSED )</ID>
<ID > ComplexCondition:SongView.kt$SongView$TextUtils.isEmpty(transcodedSuffix) || transcodedSuffix == suffix || song.isVideo & & Util.getVideoPlayerType() !== VideoPlayerType.FLASH</ID>
2021-04-22 20:51:12 +02:00
<ID > ComplexMethod:DownloadFile.kt$DownloadFile.DownloadTask$override fun execute()</ID>
<ID > ComplexMethod:FilePickerAdapter.kt$FilePickerAdapter$private fun fileLister(currentDirectory: File)</ID>
<ID > ComplexMethod:SongView.kt$SongView$fun setSong(song: MusicDirectory.Entry, checkable: Boolean, draggable: Boolean)</ID>
2021-05-06 21:08:45 +02:00
<ID > ComplexMethod:TrackCollectionFragment.kt$TrackCollectionFragment$private fun enableButtons()</ID>
<ID > ComplexMethod:TrackCollectionFragment.kt$TrackCollectionFragment$private fun updateInterfaceWithEntries(musicDirectory: MusicDirectory)</ID>
2021-04-22 20:51:12 +02:00
<ID > EmptyCatchBlock:LocalMediaPlayer.kt$LocalMediaPlayer${ }</ID>
<ID > EmptyDefaultConstructor:VideoPlayer.kt$VideoPlayer$()</ID>
<ID > EmptyFunctionBlock:SongView.kt$SongView${}</ID>
<ID > FunctionNaming:ThemeChangedEventDistributor.kt$ThemeChangedEventDistributor$fun RaiseThemeChangedEvent()</ID>
<ID > ImplicitDefaultLocale:DownloadFile.kt$DownloadFile$String.format("DownloadFile (%s)", song)</ID>
<ID > ImplicitDefaultLocale:DownloadFile.kt$DownloadFile.DownloadTask$String.format("Download of '%s' was cancelled", song)</ID>
<ID > ImplicitDefaultLocale:DownloadFile.kt$DownloadFile.DownloadTask$String.format("DownloadTask (%s)", song)</ID>
<ID > ImplicitDefaultLocale:EditServerFragment.kt$EditServerFragment.< no name provided> $String.format( "%s %s", resources.getString(R.string.settings_connection_failure), getErrorMessage(error) )</ID>
<ID > ImplicitDefaultLocale:FileLoggerTree.kt$FileLoggerTree$String.format("Failed to write log to %s", file)</ID>
<ID > ImplicitDefaultLocale:FileLoggerTree.kt$FileLoggerTree$String.format("Log file rotated, logging into file %s", file?.name)</ID>
<ID > ImplicitDefaultLocale:FileLoggerTree.kt$FileLoggerTree$String.format("Logging into file %s", file?.name)</ID>
<ID > ImplicitDefaultLocale:LocalMediaPlayer.kt$LocalMediaPlayer.BufferTask$String.format("BufferTask (%s)", downloadFile)</ID>
<ID > ImplicitDefaultLocale:LocalMediaPlayer.kt$LocalMediaPlayer.CheckCompletionTask$String.format("CheckCompletionTask (%s)", downloadFile)</ID>
<ID > ImplicitDefaultLocale:ShareHandler.kt$ShareHandler$String.format("%d:%s", timeSpanAmount, timeSpanType)</ID>
<ID > ImplicitDefaultLocale:ShareHandler.kt$ShareHandler.< no name provided> $String.format("%s\n\n%s", Util.getShareGreeting(context), result.url)</ID>
<ID > ImplicitDefaultLocale:SongView.kt$SongView$String.format("%02d.", trackNumber)</ID>
<ID > ImplicitDefaultLocale:SongView.kt$SongView$String.format("%s ", bitRate)</ID>
<ID > ImplicitDefaultLocale:SongView.kt$SongView$String.format("%s > %s", suffix, transcodedSuffix)</ID>
<ID > LargeClass:MediaPlayerService.kt$MediaPlayerService : Service</ID>
<ID > LargeClass:RESTMusicService.kt$RESTMusicService : MusicService</ID>
2021-05-06 21:08:45 +02:00
<ID > LargeClass:TrackCollectionFragment.kt$TrackCollectionFragment : Fragment</ID>
<ID > LongMethod:ArtistListFragment.kt$ArtistListFragment$override fun onViewCreated(view: View, savedInstanceState: Bundle?)</ID>
<ID > LongMethod:ArtistListFragment.kt$ArtistListFragment$private fun onArtistMenuItemSelected(menuItem: MenuItem, artist: Artist): Boolean</ID>
2021-04-22 20:51:12 +02:00
<ID > LongMethod:DownloadFile.kt$DownloadFile.DownloadTask$override fun execute()</ID>
<ID > LongMethod:EditServerFragment.kt$EditServerFragment$override fun onViewCreated(view: View, savedInstanceState: Bundle?)</ID>
<ID > LongMethod:FilePickerAdapter.kt$FilePickerAdapter$private fun fileLister(currentDirectory: File)</ID>
<ID > LongMethod:LocalMediaPlayer.kt$LocalMediaPlayer$@Synchronized private fun doPlay(downloadFile: DownloadFile, position: Int, start: Boolean)</ID>
<ID > LongMethod:MediaPlayerService.kt$MediaPlayerService$private fun updateMediaSession(currentPlaying: DownloadFile?, playerState: PlayerState)</ID>
<ID > LongMethod:NavigationActivity.kt$NavigationActivity$override fun onCreate(savedInstanceState: Bundle?)</ID>
<ID > LongMethod:ShareHandler.kt$ShareHandler$private fun showDialog( fragment: Fragment, shareDetails: ShareDetails, swipe: SwipeRefreshLayout?, cancellationToken: CancellationToken )</ID>
<ID > LongMethod:SongView.kt$SongView$fun setSong(song: MusicDirectory.Entry, checkable: Boolean, draggable: Boolean)</ID>
2021-05-06 21:08:45 +02:00
<ID > LongMethod:TrackCollectionFragment.kt$TrackCollectionFragment$override fun onContextItemSelected(menuItem: MenuItem): Boolean</ID>
<ID > LongMethod:TrackCollectionFragment.kt$TrackCollectionFragment$override fun onViewCreated(view: View, savedInstanceState: Bundle?)</ID>
<ID > LongMethod:TrackCollectionFragment.kt$TrackCollectionFragment$private fun updateDisplay(refresh: Boolean)</ID>
<ID > LongMethod:TrackCollectionFragment.kt$TrackCollectionFragment$private fun updateInterfaceWithEntries(musicDirectory: MusicDirectory)</ID>
2021-04-22 20:51:12 +02:00
<ID > LongParameterList:DownloadHandler.kt$DownloadHandler$( fragment: Fragment, append: Boolean, save: Boolean, autoPlay: Boolean, playNext: Boolean, shuffle: Boolean, songs: List< MusicDirectory.Entry?> )</ID>
<ID > LongParameterList:DownloadHandler.kt$DownloadHandler$( fragment: Fragment, id: String, name: String?, isShare: Boolean, isDirectory: Boolean, save: Boolean, append: Boolean, autoPlay: Boolean, shuffle: Boolean, background: Boolean, playNext: Boolean, unpin: Boolean, isArtist: Boolean )</ID>
<ID > LongParameterList:DownloadHandler.kt$DownloadHandler$( fragment: Fragment, id: String, name: String?, save: Boolean, append: Boolean, autoplay: Boolean, shuffle: Boolean, background: Boolean, playNext: Boolean, unpin: Boolean )</ID>
<ID > LongParameterList:DownloadHandler.kt$DownloadHandler$( fragment: Fragment, id: String?, save: Boolean, append: Boolean, autoPlay: Boolean, shuffle: Boolean, background: Boolean, playNext: Boolean, unpin: Boolean, isArtist: Boolean )</ID>
<ID > LongParameterList:ServerRowAdapter.kt$ServerRowAdapter$( private var context: Context, private var data: Array< ServerSetting> , private val model: ServerSettingsModel, private val activeServerProvider: ActiveServerProvider, private val manageMode: Boolean, private val serverDeletedCallback: ((Int) -> Unit), private val serverEditRequestedCallback: ((Int) -> Unit) )</ID>
<ID > MagicNumber:ActiveServerProvider.kt$ActiveServerProvider$8192</ID>
<ID > MagicNumber:AudioFocusHandler.kt$AudioFocusHandler$0.1f</ID>
<ID > MagicNumber:DownloadFile.kt$DownloadFile$100</ID>
<ID > MagicNumber:DownloadFile.kt$DownloadFile.DownloadTask$10</ID>
<ID > MagicNumber:DownloadFile.kt$DownloadFile.DownloadTask$1000L</ID>
<ID > MagicNumber:DownloadFile.kt$DownloadFile.DownloadTask$60</ID>
<ID > MagicNumber:DownloadHandler.kt$DownloadHandler$500</ID>
<ID > MagicNumber:FileLoggerTree.kt$FileLoggerTree$100</ID>
<ID > MagicNumber:FileLoggerTree.kt$FileLoggerTree$3</ID>
<ID > MagicNumber:FileLoggerTree.kt$FileLoggerTree$4</ID>
<ID > MagicNumber:FileLoggerTree.kt$FileLoggerTree$5</ID>
<ID > MagicNumber:FileLoggerTree.kt$FileLoggerTree$6</ID>
<ID > MagicNumber:FileLoggerTree.kt$FileLoggerTree$7</ID>
<ID > MagicNumber:LocalMediaPlayer.kt$LocalMediaPlayer$100</ID>
<ID > MagicNumber:LocalMediaPlayer.kt$LocalMediaPlayer$1000</ID>
<ID > MagicNumber:LocalMediaPlayer.kt$LocalMediaPlayer.< no name provided> $1000</ID>
<ID > MagicNumber:LocalMediaPlayer.kt$LocalMediaPlayer.< no name provided> $60000</ID>
<ID > MagicNumber:LocalMediaPlayer.kt$LocalMediaPlayer.BufferTask$100000</ID>
<ID > MagicNumber:LocalMediaPlayer.kt$LocalMediaPlayer.BufferTask$1000L</ID>
<ID > MagicNumber:LocalMediaPlayer.kt$LocalMediaPlayer.BufferTask$1024L</ID>
<ID > MagicNumber:LocalMediaPlayer.kt$LocalMediaPlayer.BufferTask$8</ID>
<ID > MagicNumber:LocalMediaPlayer.kt$LocalMediaPlayer.BufferTask$86400L</ID>
<ID > MagicNumber:LocalMediaPlayer.kt$LocalMediaPlayer.BufferTask$8L</ID>
<ID > MagicNumber:LocalMediaPlayer.kt$LocalMediaPlayer.CheckCompletionTask$5000L</ID>
<ID > MagicNumber:LocalMediaPlayer.kt$LocalMediaPlayer.PositionCache$50L</ID>
<ID > MagicNumber:MediaPlayerService.kt$MediaPlayerService$100</ID>
<ID > MagicNumber:MediaPlayerService.kt$MediaPlayerService$1000</ID>
<ID > MagicNumber:MediaPlayerService.kt$MediaPlayerService$256</ID>
<ID > MagicNumber:MediaPlayerService.kt$MediaPlayerService$3</ID>
<ID > MagicNumber:MediaPlayerService.kt$MediaPlayerService$4</ID>
<ID > MagicNumber:MediaPlayerService.kt$MediaPlayerService.Companion$19</ID>
<ID > MagicNumber:MediaPlayerService.kt$MediaPlayerService.Companion$50L</ID>
<ID > MagicNumber:RESTMusicService.kt$RESTMusicService$206</ID>
<ID > MagicNumber:RESTMusicService.kt$RESTMusicService$5</ID>
<ID > MagicNumber:SelectMusicFolderView.kt$SelectMusicFolderView$10</ID>
<ID > MagicNumber:SongView.kt$SongView$3</ID>
<ID > MagicNumber:SongView.kt$SongView$4</ID>
<ID > MagicNumber:SongView.kt$SongView$60</ID>
2021-05-06 21:08:45 +02:00
<ID > MagicNumber:TrackCollectionFragment.kt$TrackCollectionFragment$10</ID>
2021-04-22 20:51:12 +02:00
<ID > NestedBlockDepth:DownloadFile.kt$DownloadFile.DownloadTask$override fun execute()</ID>
<ID > NestedBlockDepth:DownloadHandler.kt$DownloadHandler$private fun downloadRecursively( fragment: Fragment, id: String, name: String?, isShare: Boolean, isDirectory: Boolean, save: Boolean, append: Boolean, autoPlay: Boolean, shuffle: Boolean, background: Boolean, playNext: Boolean, unpin: Boolean, isArtist: Boolean )</ID>
<ID > NestedBlockDepth:MediaPlayerService.kt$MediaPlayerService$private fun setupOnSongCompletedHandler()</ID>
<ID > ReturnCount:ActiveServerProvider.kt$ActiveServerProvider$ fun getActiveServer(): ServerSetting</ID>
<ID > ReturnCount:CommunicationErrorHandler.kt$CommunicationErrorHandler.Companion$fun getErrorMessage(error: Throwable, context: Context): String</ID>
<ID > ReturnCount:FileLoggerTree.kt$FileLoggerTree$ private fun getNextLogFile()</ID>
<ID > ReturnCount:MediaPlayerService.kt$MediaPlayerService$private fun generateAction(context: Context, requestCode: Int): NotificationCompat.Action?</ID>
2021-05-11 12:57:29 +02:00
<ID > ReturnCount:RESTMusicService.kt$RESTMusicService$@Throws(Exception::class) override fun getAvatar( username: String?, size: Int, saveToFile: Boolean, highQuality: Boolean ): Bitmap?</ID>
<ID > ReturnCount:RESTMusicService.kt$RESTMusicService$@Throws(Exception::class) override fun getCoverArt( entry: MusicDirectory.Entry?, size: Int, saveToFile: Boolean, highQuality: Boolean ): Bitmap?</ID>
2021-04-22 20:51:12 +02:00
<ID > ReturnCount:ServerRowAdapter.kt$ServerRowAdapter$ private fun popupMenuItemClick(menuItem: MenuItem, position: Int): Boolean</ID>
2021-05-06 21:08:45 +02:00
<ID > ReturnCount:TrackCollectionFragment.kt$TrackCollectionFragment$override fun onContextItemSelected(menuItem: MenuItem): Boolean</ID>
<ID > ReturnCount:TrackCollectionFragment.kt$TrackCollectionFragment$override fun onOptionsItemSelected(item: MenuItem): Boolean</ID>
2021-04-22 20:51:12 +02:00
<ID > SpreadOperator:MediaPlayerService.kt$MediaPlayerService$(*compactActions)</ID>
<ID > SwallowedException:DownloadFile.kt$DownloadFile$catch (e: Exception) { Timber.w("Failed to set last-modified date on %s", file) }</ID>
<ID > SwallowedException:DownloadFile.kt$DownloadFile$catch (ex: IOException) { Timber.w("Failed to rename file %s to %s", completeFile, saveFile) }</ID>
<ID > SwallowedException:LocalMediaPlayer.kt$LocalMediaPlayer$catch (e: Throwable) { // Froyo or lower }</ID>
<ID > SwallowedException:LocalMediaPlayer.kt$LocalMediaPlayer$catch (e: Throwable) { }</ID>
<ID > SwallowedException:MediaPlayerService.kt$MediaPlayerService$catch (x: IndexOutOfBoundsException) { // Ignored }</ID>
<ID > SwallowedException:NavigationActivity.kt$NavigationActivity$catch (e: Resources.NotFoundException) { destination.id.toString() }</ID>
<ID > ThrowsCount:ApiCallResponseChecker.kt$ApiCallResponseChecker.Companion$@Throws(SubsonicRESTException::class, IOException::class) fun checkResponseSuccessful(response: Response< out SubsonicResponse> )</ID>
<ID > TooGenericExceptionCaught:ArtistListModel.kt$ArtistListModel$exception: Exception</ID>
<ID > TooGenericExceptionCaught:DownloadFile.kt$DownloadFile$e: Exception</ID>
<ID > TooGenericExceptionCaught:DownloadFile.kt$DownloadFile.DownloadTask$x: Exception</ID>
<ID > TooGenericExceptionCaught:FileLoggerTree.kt$FileLoggerTree$x: Throwable</ID>
<ID > TooGenericExceptionCaught:LocalMediaPlayer.kt$LocalMediaPlayer$e: Throwable</ID>
<ID > TooGenericExceptionCaught:LocalMediaPlayer.kt$LocalMediaPlayer$ex: Exception</ID>
<ID > TooGenericExceptionCaught:LocalMediaPlayer.kt$LocalMediaPlayer$exception: Throwable</ID>
<ID > TooGenericExceptionCaught:LocalMediaPlayer.kt$LocalMediaPlayer$x: Exception</ID>
<ID > TooGenericExceptionCaught:LocalMediaPlayer.kt$LocalMediaPlayer.PositionCache$e: Exception</ID>
<ID > TooGenericExceptionCaught:MediaPlayerService.kt$MediaPlayerService$e: Exception</ID>
<ID > TooGenericExceptionCaught:MediaPlayerService.kt$MediaPlayerService$x: IndexOutOfBoundsException</ID>
<ID > TooGenericExceptionCaught:SongView.kt$SongView$e: Exception</ID>
<ID > TooGenericExceptionCaught:SubsonicUncaughtExceptionHandler.kt$SubsonicUncaughtExceptionHandler$x: Throwable</ID>
<ID > TooGenericExceptionCaught:VideoPlayer.kt$VideoPlayer$e: Exception</ID>
<ID > TooGenericExceptionThrown:DownloadFile.kt$DownloadFile.DownloadTask$throw Exception(String.format("Download of '%s' was cancelled", song))</ID>
<ID > TooManyFunctions:LocalMediaPlayer.kt$LocalMediaPlayer</ID>
<ID > TooManyFunctions:MediaPlayerService.kt$MediaPlayerService : Service</ID>
<ID > TooManyFunctions:RESTMusicService.kt$RESTMusicService : MusicService</ID>
2021-05-06 21:08:45 +02:00
<ID > TooManyFunctions:TrackCollectionFragment.kt$TrackCollectionFragment : Fragment</ID>
2021-04-22 20:51:12 +02:00
<ID > TopLevelPropertyNaming:SubsonicUncaughtExceptionHandler.kt$private const val filename = "ultrasonic-stacktrace.txt"</ID>
<ID > UnusedPrivateMember:RESTMusicService.kt$RESTMusicService.Companion$private const val INDEXES_FOLDER_STORAGE_NAME = "indexes_folder"</ID>
<ID > UselessCallOnNotNull:FileLoggerTree.kt$FileLoggerTree$fileList.isNullOrEmpty()</ID>
<ID > UselessCallOnNotNull:FileLoggerTree.kt$FileLoggerTree.Companion$fileList.isNullOrEmpty()</ID>
<ID > UtilityClassWithPublicConstructor:CommunicationErrorHandler.kt$CommunicationErrorHandler</ID>
<ID > UtilityClassWithPublicConstructor:FragmentTitle.kt$FragmentTitle</ID>
<ID > VariableNaming:SelectMusicFolderView.kt$SelectMusicFolderView$private val MENU_GROUP_MUSIC_FOLDER = 10</ID>
</CurrentIssues>
</SmellBaseline>