diff --git a/app/src/main/java/com/michatec/radio/Keys.kt b/app/src/main/java/com/michatec/radio/Keys.kt index 9dbdb7a..624ed9b 100644 --- a/app/src/main/java/com/michatec/radio/Keys.kt +++ b/app/src/main/java/com/michatec/radio/Keys.kt @@ -60,7 +60,6 @@ object Keys { // preferences const val PREF_RADIO_BROWSER_API: String = "RADIO_BROWSER_API" - const val PREF_ONE_TIME_HOUSEKEEPING_NECESSARY: String = "ONE_TIME_HOUSEKEEPING_NECESSARY_VERSIONCODE_95" // increment to current app version code to trigger housekeeping that runs only once const val PREF_THEME_SELECTION: String = "THEME_SELECTION" const val PREF_LAST_UPDATE_COLLECTION: String = "LAST_UPDATE_COLLECTION" const val PREF_COLLECTION_SIZE: String = "COLLECTION_SIZE" @@ -138,7 +137,7 @@ object Keys { const val FOLDER_AUDIO: String = "audio" const val FOLDER_IMAGES: String = "images" const val FOLDER_TEMP: String = "temp" - const val URLRADIO_LEGACY_FOLDER_COLLECTION: String = "Collection" + const val RADIO_LEGACY_FOLDER_COLLECTION: String = "Collection" // file names and extensions const val COLLECTION_FILE: String = "collection.json" diff --git a/app/src/main/java/com/michatec/radio/PlayerFragment.kt b/app/src/main/java/com/michatec/radio/PlayerFragment.kt index 96b4c74..8d67a68 100644 --- a/app/src/main/java/com/michatec/radio/PlayerFragment.kt +++ b/app/src/main/java/com/michatec/radio/PlayerFragment.kt @@ -265,7 +265,7 @@ class PlayerFragment : Fragment(), // handle navigation arguments handleNavigationArguments() // // handle start intent - if started via tap on rss link -// handleStartIntent() + handleStartIntent() // start watching for changes in shared preferences PreferencesHelper.registerPreferenceChangeListener(this as SharedPreferences.OnSharedPreferenceChangeListener) } @@ -636,16 +636,16 @@ class PlayerFragment : Fragment(), collectionViewModel.collectionLiveData.observe(this) { // update collection collection = it -//// // updates current station in player views -//// playerState = PreferencesHelper.loadPlayerState() + // updates current station in player views + playerState = PreferencesHelper.loadPlayerState() // // get station -// val station: Station = CollectionHelper.getStation(collection, playerState.stationUuid) + val station: Station = CollectionHelper.getStation(collection, playerState.stationUuid) // // update player views -// layout.updatePlayerViews(activity as Context, station, playerState.isPlaying) -//// // handle start intent -//// handleStartIntent() -//// // handle navigation arguments -//// handleNavigationArguments() + layout.updatePlayerViews(activity as Context, station, playerState.isPlaying) + // handle start intent + handleStartIntent() + // handle navigation arguments + handleNavigationArguments() } collectionViewModel.collectionSizeLiveData.observe(this) { // size of collection changed diff --git a/app/src/main/java/com/michatec/radio/PlayerService.kt b/app/src/main/java/com/michatec/radio/PlayerService.kt index f5aa621..e7f2b88 100644 --- a/app/src/main/java/com/michatec/radio/PlayerService.kt +++ b/app/src/main/java/com/michatec/radio/PlayerService.kt @@ -280,19 +280,8 @@ class PlayerService : MediaLibraryService() { val updatedMediaItems: List = mediaItems.map { mediaItem -> CollectionHelper.getItem(this@PlayerService, collection, mediaItem.mediaId) -// if (mediaItem.requestMetadata.searchQuery != null) -// getMediaItemFromSearchQuery(mediaItem.requestMetadata.searchQuery!!) -// else MediaItemTree.getItem(mediaItem.mediaId) ?: mediaItem } return Futures.immediateFuture(updatedMediaItems) - - -// val updatedMediaItems = mediaItems.map { mediaItem -> -// mediaItem.buildUpon().apply { -// setUri(mediaItem.requestMetadata.mediaUri) -// }.build() -// } -// return Futures.immediateFuture(updatedMediaItems) } @@ -498,15 +487,10 @@ class PlayerService : MediaLibraryService() { if (!playWhenReady) { when (reason) { Player.PLAY_WHEN_READY_CHANGE_REASON_END_OF_MEDIA_ITEM -> { - // playback reached end: stop / end playback + stopSelf() } else -> { - // playback has been paused by user or OS: update media session and save state - // PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST or - // PLAY_WHEN_READY_CHANGE_REASON_AUDIO_FOCUS_LOSS or - // PLAY_WHEN_READY_CHANGE_REASON_AUDIO_BECOMING_NOISY or - // PLAY_WHEN_READY_CHANGE_REASON_REMOTE - // handlePlaybackChange(PlaybackStateCompat.STATE_PAUSED) + stopSelf() } } } @@ -585,7 +569,6 @@ class PlayerService : MediaLibraryService() { intent.putExtra(AudioEffect.EXTRA_PACKAGE_NAME, packageName) intent.putExtra(AudioEffect.EXTRA_CONTENT_TYPE, AudioEffect.CONTENT_TYPE_MUSIC) sendBroadcast(intent) - // note: remember to broadcast AudioEffect.ACTION_CLOSE_AUDIO_EFFECT_CONTROL_SESSION, when not needed anymore } } } diff --git a/app/src/main/java/com/michatec/radio/dialogs/ErrorDialog.kt b/app/src/main/java/com/michatec/radio/dialogs/ErrorDialog.kt index 9751eb4..b2ee4d4 100644 --- a/app/src/main/java/com/michatec/radio/dialogs/ErrorDialog.kt +++ b/app/src/main/java/com/michatec/radio/dialogs/ErrorDialog.kt @@ -19,6 +19,7 @@ import android.text.method.ScrollingMovementMethod import android.view.LayoutInflater import android.view.View import android.widget.TextView +import android.widget.Toast import androidx.core.view.isGone import androidx.core.view.isVisible import com.google.android.material.dialog.MaterialAlertDialogBuilder @@ -81,8 +82,7 @@ class ErrorDialog { // add okay button builder.setPositiveButton(R.string.dialog_generic_button_okay) { _, _ -> - // listen for click on okay button - // do nothing + Toast.makeText(context, R.string.dialog_generic_button_okay, Toast.LENGTH_SHORT).show() } // display error dialog diff --git a/app/src/main/java/com/michatec/radio/helpers/CollectionHelper.kt b/app/src/main/java/com/michatec/radio/helpers/CollectionHelper.kt index e340c22..8b35ab9 100644 --- a/app/src/main/java/com/michatec/radio/helpers/CollectionHelper.kt +++ b/app/src/main/java/com/michatec/radio/helpers/CollectionHelper.kt @@ -644,48 +644,6 @@ object CollectionHelper { LocalBroadcastManager.getInstance(context).sendBroadcast(collectionChangedIntent) } - - // /* Creates MediaMetadata for a single station - used in media session*/ -// fun buildStationMediaMetadata(context: Context, station: Station, metadata: String): MediaMetadataCompat { -// return MediaMetadataCompat.Builder().apply { -// putString(MediaMetadataCompat.METADATA_KEY_ARTIST, station.name) -// putString(MediaMetadataCompat.METADATA_KEY_TITLE, metadata) -// putString(MediaMetadataCompat.METADATA_KEY_ALBUM, context.getString(R.string.app_name)) -// putString(MediaMetadataCompat.METADATA_KEY_MEDIA_URI, station.getStreamUri()) -// putBitmap(MediaMetadataCompat.METADATA_KEY_ALBUM_ART, ImageHelper.getScaledStationImage(context, station.image, Keys.SIZE_COVER_LOCK_SCREEN)) -// //putString(MediaMetadataCompat.METADATA_KEY_ALBUM_ART_URI, station.image) -// }.build() -// } -// -// -// /* Creates MediaItem for a station - used by collection provider */ -// fun buildStationMediaMetaItem(context: Context, station: Station): MediaBrowserCompat.MediaItem { -// val mediaDescriptionBuilder = MediaDescriptionCompat.Builder() -// mediaDescriptionBuilder.setMediaId(station.uuid) -// mediaDescriptionBuilder.setTitle(station.name) -// mediaDescriptionBuilder.setIconBitmap(ImageHelper.getScaledStationImage(context, station.image, Keys.SIZE_COVER_LOCK_SCREEN)) -// // mediaDescriptionBuilder.setIconUri(station.image.toUri()) -// return MediaBrowserCompat.MediaItem(mediaDescriptionBuilder.build(), MediaBrowserCompat.MediaItem.FLAG_PLAYABLE) -// } -// -// -// /* Creates description for a station - used in MediaSessionConnector */ -// fun buildStationMediaDescription(context: Context, station: Station, metadata: String): MediaDescriptionCompat { -// val coverBitmap: Bitmap = ImageHelper.getScaledStationImage(context, station.image, Keys.SIZE_COVER_LOCK_SCREEN) -// val extras: Bundle = Bundle() -// extras.putParcelable(MediaMetadataCompat.METADATA_KEY_ALBUM_ART, coverBitmap) -// extras.putParcelable(MediaMetadataCompat.METADATA_KEY_DISPLAY_ICON, coverBitmap) -// return MediaDescriptionCompat.Builder().apply { -// setMediaId(station.uuid) -// setIconBitmap(coverBitmap) -// setIconUri(station.image.toUri()) -// setTitle(metadata) -// setSubtitle(station.name) -// setExtras(extras) -// }.build() -// } - - /* Creates a MediaItem with MediaMetadata for a single radio station - used to prepare player */ fun buildMediaItem(context: Context, station: Station): MediaItem { // put uri in RequestMetadata - credit: https://stackoverflow.com/a/70103460 diff --git a/app/src/main/java/com/michatec/radio/helpers/FileHelper.kt b/app/src/main/java/com/michatec/radio/helpers/FileHelper.kt index 1ac69e3..395755d 100644 --- a/app/src/main/java/com/michatec/radio/helpers/FileHelper.kt +++ b/app/src/main/java/com/michatec/radio/helpers/FileHelper.kt @@ -246,7 +246,7 @@ object FileHelper { File(activity.getExternalFilesDir(Keys.FOLDER_COLLECTION), Keys.COLLECTION_M3U_FILE) if (!m3uFile.exists()) { m3uFile = File( - activity.getExternalFilesDir(Keys.URLRADIO_LEGACY_FOLDER_COLLECTION), + activity.getExternalFilesDir(Keys.RADIO_LEGACY_FOLDER_COLLECTION), Keys.COLLECTION_M3U_FILE ) } @@ -270,7 +270,7 @@ object FileHelper { File(activity.getExternalFilesDir(Keys.FOLDER_COLLECTION), Keys.COLLECTION_PLS_FILE) if (!plsFile.exists()) { plsFile = File( - activity.getExternalFilesDir(Keys.URLRADIO_LEGACY_FOLDER_COLLECTION), + activity.getExternalFilesDir(Keys.RADIO_LEGACY_FOLDER_COLLECTION), Keys.COLLECTION_PLS_FILE ) } diff --git a/app/src/main/java/com/michatec/radio/helpers/NetworkHelper.kt b/app/src/main/java/com/michatec/radio/helpers/NetworkHelper.kt index 1ce41c7..7ae0c02 100644 --- a/app/src/main/java/com/michatec/radio/helpers/NetworkHelper.kt +++ b/app/src/main/java/com/michatec/radio/helpers/NetworkHelper.kt @@ -120,7 +120,7 @@ object NetworkHelper { InetAddress.getAllByName(Keys.RADIO_BROWSER_API_BASE) // select a random address serverAddressList[Random().nextInt(serverAddressList.size)].canonicalHostName - } catch (e: UnknownHostException) { + } catch (_: UnknownHostException) { Keys.RADIO_BROWSER_API_DEFAULT } PreferencesHelper.saveRadioBrowserApiAddress(serverAddress) diff --git a/app/src/main/java/com/michatec/radio/helpers/UiHelper.kt b/app/src/main/java/com/michatec/radio/helpers/UiHelper.kt index f395100..ad47dea 100644 --- a/app/src/main/java/com/michatec/radio/helpers/UiHelper.kt +++ b/app/src/main/java/com/michatec/radio/helpers/UiHelper.kt @@ -1,17 +1,3 @@ -/* - * UiHelper.kt - * Implements the UiHelper object - * A UiHelper provides helper methods for User Interface related tasks - * - * This file is part of - * TRANSISTOR - Radio App for Android - * - * Copyright (c) 2015-22 - Y20K.org - * Licensed under the MIT-License - * http://opensource.org/licenses/MIT - */ - - package com.michatec.radio.helpers import android.content.Context diff --git a/app/src/main/java/com/michatec/radio/ui/LayoutHolder.kt b/app/src/main/java/com/michatec/radio/ui/LayoutHolder.kt index 23819d7..2cf6b51 100644 --- a/app/src/main/java/com/michatec/radio/ui/LayoutHolder.kt +++ b/app/src/main/java/com/michatec/radio/ui/LayoutHolder.kt @@ -313,18 +313,6 @@ data class LayoutHolder(var rootView: View) { isBuffering = buffering } - - /* Toggles visibility of player depending on playback state - hiding it when playback is stopped (not paused or playing) */ -// fun togglePlayerVisibility(context: Context, playbackState: Int): Boolean { -// when (playbackState) { -// PlaybackStateCompat.STATE_STOPPED -> return hidePlayer(context) -// PlaybackStateCompat.STATE_NONE -> return hidePlayer(context) -// PlaybackStateCompat.STATE_ERROR -> return hidePlayer(context) -// else -> return showPlayer(context) -// } -// } - - /* Toggles visibility of the download progress indicator */ fun toggleDownloadProgressIndicator() { when (PreferencesHelper.loadActiveDownloads()) {