diff --git a/music/src/main/java/de/mm20/launcher2/music/MusicRepository.kt b/music/src/main/java/de/mm20/launcher2/music/MusicRepository.kt index 019fb92d..0f7beacf 100644 --- a/music/src/main/java/de/mm20/launcher2/music/MusicRepository.kt +++ b/music/src/main/java/de/mm20/launcher2/music/MusicRepository.kt @@ -6,7 +6,7 @@ import android.content.Intent import android.graphics.Bitmap import android.graphics.BitmapFactory import android.media.AudioManager -import android.os.Bundle +import android.net.Uri import android.support.v4.media.session.MediaSessionCompat import android.util.Log import android.view.KeyEvent @@ -17,11 +17,11 @@ import androidx.media2.common.MediaItem import androidx.media2.common.MediaMetadata import androidx.media2.common.SessionPlayer import androidx.media2.session.MediaController -import androidx.media2.session.SessionCommand import androidx.media2.session.SessionCommandGroup -import androidx.media2.session.SessionResult +import de.mm20.launcher2.ktx.asBitmap import kotlinx.coroutines.* import java.io.File +import java.io.FileNotFoundException import java.util.concurrent.Executors class MusicRepository(val context: Context) { @@ -48,9 +48,9 @@ class MusicRepository(val context: Context) { if (token.toString() == lastToken.toString()) return mediaController?.close() mediaController = MediaController.Builder(context) - .setSessionCompatToken(token) - .setControllerCallback(Executors.newSingleThreadExecutor(), mediaSessionCallback) - .build() + .setSessionCompatToken(token) + .setControllerCallback(Executors.newSingleThreadExecutor(), mediaSessionCallback) + .build() lastToken = token.toString() } @@ -63,7 +63,10 @@ class MusicRepository(val context: Context) { } private val mediaSessionCallback = object : MediaController.ControllerCallback() { - override fun onConnected(controller: MediaController, allowedCommands: SessionCommandGroup) { + override fun onConnected( + controller: MediaController, + allowedCommands: SessionCommandGroup + ) { super.onConnected(controller, allowedCommands) updateMetadata() updateState() @@ -79,7 +82,10 @@ class MusicRepository(val context: Context) { updateState() } - override fun onPlaybackInfoChanged(controller: MediaController, info: MediaController.PlaybackInfo) { + override fun onPlaybackInfoChanged( + controller: MediaController, + info: MediaController.PlaybackInfo + ) { super.onPlaybackInfoChanged(controller, info) Log.d("MM20", "CurrentPosition" + controller.currentPosition.toString()) } @@ -105,11 +111,12 @@ class MusicRepository(val context: Context) { private fun updateMetadata() { val metadata = mediaController?.currentMediaItem?.metadata ?: return val title = metadata.getString(MediaMetadata.METADATA_KEY_DISPLAY_TITLE) - ?: metadata.getString(MediaMetadata.METADATA_KEY_TITLE) + ?: metadata.getString(MediaMetadata.METADATA_KEY_TITLE) val artist = metadata.getString(MediaMetadata.METADATA_KEY_ARTIST) - ?: metadata.getString(MediaMetadata.METADATA_KEY_COMPOSER) - ?: metadata.getString(MediaMetadata.METADATA_KEY_AUTHOR) - ?: metadata.getString(MediaMetadata.METADATA_KEY_WRITER) + ?: metadata.getString(MediaMetadata.METADATA_KEY_COMPOSER) + ?: metadata.getString(MediaMetadata.METADATA_KEY_AUTHOR) + ?: metadata.getString(MediaMetadata.METADATA_KEY_WRITER) + ?: return val album = metadata.getString(MediaMetadata.METADATA_KEY_ALBUM) lastPlayer = mediaController?.connectedToken?.packageName ?: lastPlayer @@ -226,21 +233,28 @@ class MusicRepository(val context: Context) { return it } val intent = Intent(Intent.ACTION_MAIN) - .setPackage(lastPlayer) - .addCategory(Intent.CATEGORY_APP_MUSIC) - .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + .setPackage(lastPlayer) + .addCategory(Intent.CATEGORY_APP_MUSIC) + .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK) - return PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_ONE_SHOT or PendingIntent.FLAG_IMMUTABLE) + return PendingIntent.getActivity( + context, + 0, + intent, + PendingIntent.FLAG_ONE_SHOT or PendingIntent.FLAG_IMMUTABLE + ) } fun openPlayerChooser(context: Context) { - context.startActivity(Intent.createChooser( + context.startActivity( + Intent.createChooser( Intent(Intent.ACTION_MAIN) - .apply { - addCategory(Intent.CATEGORY_APP_MUSIC) - flags = Intent.FLAG_ACTIVITY_NEW_TASK - }, - null) + .apply { + addCategory(Intent.CATEGORY_APP_MUSIC) + flags = Intent.FLAG_ACTIVITY_NEW_TASK + }, + null + ) ) }