Some warning and deprecation cleanup.

This commit is contained in:
casey langen 2022-07-23 13:38:42 -07:00
parent deab36a89d
commit dea9b6fe55
6 changed files with 65 additions and 41 deletions

View File

@ -496,7 +496,7 @@ class StreamingPlaybackService(context: Context) : IPlaybackService {
state = PlaybackState.Playing
prefetchNextTrackAudio()
cancelScheduledPausedSleep()
precacheTrackMetadata(playContext.currentIndex, PRECACHE_METADATA_SIZE)
precacheTrackMetadataPage(playContext.currentIndex)
}
PlayerWrapper.State.Buffering -> state = PlaybackState.Buffering
@ -673,6 +673,7 @@ class StreamingPlaybackService(context: Context) : IPlaybackService {
}
}
@SuppressLint("CheckResult")
private fun prefetchNextTrackMetadata() {
if (playContext.nextMetadata == null) {
val originalParams = queryContext
@ -770,9 +771,9 @@ class StreamingPlaybackService(context: Context) : IPlaybackService {
}
@SuppressLint("CheckResult")
private fun precacheTrackMetadata(start: Int, count: Int) {
private fun precacheTrackMetadataPage(start: Int) {
val originalParams = queryContext
val query = playlistQueryFactory.page(start, count)
val query = playlistQueryFactory.page(start, PRECACHE_METADATA_SIZE)
if (query != null) {
@Suppress("unused")

View File

@ -5,12 +5,13 @@ import android.content.Context
import android.content.Intent
import android.view.KeyEvent
import androidx.core.content.ContextCompat
import io.casey.musikcube.remote.util.getParcelableExtraCompat
class MediaButtonReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
val action = intent.action
if (Intent.ACTION_MEDIA_BUTTON == action) {
val event = intent.getParcelableExtra<KeyEvent>(Intent.EXTRA_KEY_EVENT)
val event = intent.getParcelableExtraCompat<KeyEvent>(Intent.EXTRA_KEY_EVENT)
if (event != null && event.action == KeyEvent.ACTION_DOWN) {
when (event.keyCode) {

View File

@ -35,6 +35,7 @@ import io.casey.musikcube.remote.ui.shared.extension.fallback
import io.casey.musikcube.remote.ui.shared.util.AlbumArtLookup
import io.casey.musikcube.remote.ui.shared.util.Size
import io.casey.musikcube.remote.util.Debouncer
import io.casey.musikcube.remote.util.getParcelableExtraCompat
import androidx.core.app.NotificationCompat.Action as NotifAction
const val ENABLE_LOGGING = false
@ -511,7 +512,9 @@ class SystemService : Service() {
private val mediaSessionCallback = object : MediaSessionCompat.Callback() {
override fun onMediaButtonEvent(mediaButtonEvent: Intent?): Boolean {
if (Intent.ACTION_MEDIA_BUTTON == mediaButtonEvent?.action) {
val event = mediaButtonEvent.getParcelableExtra<KeyEvent>(Intent.EXTRA_KEY_EVENT) ?: return super.onMediaButtonEvent(mediaButtonEvent)
val event =
mediaButtonEvent.getParcelableExtraCompat<KeyEvent>(Intent.EXTRA_KEY_EVENT) ?:
return super.onMediaButtonEvent(mediaButtonEvent)
val keycode = event.keyCode
val action = event.action

View File

@ -10,6 +10,7 @@ import android.view.Menu
import android.view.MenuItem
import android.view.View
import android.widget.*
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.DialogFragment
import com.uacf.taskrunner.Task
@ -25,6 +26,8 @@ import io.casey.musikcube.remote.ui.shared.activity.BaseActivity
import io.casey.musikcube.remote.ui.shared.extension.*
import io.casey.musikcube.remote.ui.shared.mixin.MetadataProxyMixin
import io.casey.musikcube.remote.ui.shared.mixin.PlaybackMixin
import io.casey.musikcube.remote.util.getParcelableCompat
import io.casey.musikcube.remote.util.getParcelableExtraCompat
import java.util.*
import javax.inject.Inject
import io.casey.musikcube.remote.ui.settings.constants.Prefs.Default as Defaults
@ -83,26 +86,6 @@ class SettingsActivity : BaseActivity() {
return super.onOptionsItemSelected(item)
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if (requestCode == CONNECTIONS_REQUEST_CODE && resultCode == RESULT_OK) {
if (data != null) {
val connection = data.getParcelableExtra<Connection>(
ConnectionsActivity.EXTRA_SELECTED_CONNECTION)
if (connection != null) {
addressText.setText(connection.hostname)
passwordText.setText(connection.password)
portText.setText(connection.wssPort.toString())
httpPortText.setText(connection.httpPort.toString())
sslCheckbox.setCheckWithoutEvent(connection.ssl, sslCheckChanged)
certCheckbox.setCheckWithoutEvent(connection.noValidate, certValidationChanged)
}
}
}
super.onActivityResult(requestCode, resultCode, data)
}
override val transitionType: Transition
get() = Transition.Vertical
@ -219,14 +202,12 @@ class SettingsActivity : BaseActivity() {
}
private fun bindListeners() {
findViewById<View>(R.id.button_save_as).setOnClickListener{
findViewById<View>(R.id.button_save_as).setOnClickListener {
showSaveAsDialog()
}
findViewById<View>(R.id.button_load).setOnClickListener{
startActivityForResult(
ConnectionsActivity.getStartIntent(this),
CONNECTIONS_REQUEST_CODE)
findViewById<View>(R.id.button_load).setOnClickListener {
connectionsActivityLauncher.launch(ConnectionsActivity.getStartIntent(this))
}
findViewById<View>(R.id.button_diagnostics).setOnClickListener {
@ -234,6 +215,23 @@ class SettingsActivity : BaseActivity() {
}
}
private val connectionsActivityLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { activityResult ->
if (activityResult.resultCode == RESULT_OK && activityResult.data != null) {
activityResult.data?.let { data ->
val connection = data.getParcelableExtraCompat<Connection>(ConnectionsActivity.EXTRA_SELECTED_CONNECTION)
if (connection != null) {
addressText.setText(connection.hostname)
passwordText.setText(connection.password)
portText.setText(connection.wssPort.toString())
httpPortText.setText(connection.httpPort.toString())
sslCheckbox.setCheckWithoutEvent(connection.ssl, sslCheckChanged)
certCheckbox.setCheckWithoutEvent(connection.noValidate, certValidationChanged)
}
}
}
}
private fun showSaveAsDialog() {
if (!dialogVisible(SaveAsDialog.TAG)) {
showDialog(SaveAsDialog.newInstance(), SaveAsDialog.TAG)
@ -413,15 +411,12 @@ class SettingsActivity : BaseActivity() {
.setMessage(R.string.settings_confirm_overwrite_message)
.setNegativeButton(R.string.button_no, null)
.setPositiveButton(R.string.button_yes) { _, _ ->
when (val connection = arguments?.getParcelable<Connection>(EXTRA_CONNECTION)) {
null -> throw IllegalArgumentException("invalid connection")
else -> {
arguments?.getParcelableCompat<Connection>(EXTRA_CONNECTION)?.let { connection ->
val db = (activity as SettingsActivity).connectionsDb
val saveAs = SaveAsTask(db, connection, true)
(activity as SettingsActivity).runner.run(SaveAsTask.nameFor(connection), saveAs)
}
}
}
.create()
dlg.setCancelable(false)
@ -484,8 +479,6 @@ class SettingsActivity : BaseActivity() {
}
companion object {
const val CONNECTIONS_REQUEST_CODE = 1000
fun getStartIntent(context: Context): Intent {
return Intent(context, SettingsActivity::class.java)
}

View File

@ -173,7 +173,7 @@ open class BaseFragment: Fragment(), ViewModel.Provider, IBackHandler {
toolbar?.collapseActionViewIfExpanded() ?: false
override fun <T: ViewModel<*>> createViewModel(): T? = null
@Suppress protected fun <T: ViewModel<*>> getViewModel(): T = mixin(ViewModelMixin::class.java)?.get() as T
@Suppress("unused") protected fun <T: ViewModel<*>> getViewModel(): T = mixin(ViewModelMixin::class.java)?.get() as T
protected fun <T: IMixin> mixin(mixin: T): T = mixins.add(mixin)
protected fun <T: IMixin> mixin(cls: Class<out T>): T? = mixins.get(cls)
@ -188,7 +188,7 @@ open class BaseFragment: Fragment(), ViewModel.Provider, IBackHandler {
if (arguments == null) {
arguments = Bundle()
}
return arguments!!
return requireArguments()
}
val appCompatActivity: AppCompatActivity

View File

@ -0,0 +1,26 @@
package io.casey.musikcube.remote.util
import android.content.Intent
import android.os.Bundle
import android.os.Parcelable
import androidx.annotation.RequiresApi
@RequiresApi(33)
@Suppress("deprecation")
inline fun <reified T: Parcelable> Intent.getParcelableExtraCompat(name: String): T? =
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.S) {
this.getParcelableExtra(name)
}
else {
this.getParcelableExtra(name, T::class.java)
}
@RequiresApi(33)
@Suppress("deprecation")
inline fun <reified T: Parcelable> Bundle.getParcelableCompat(name: String): T? =
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.S) {
this.getParcelable(name)
}
else {
this.getParcelable(name, T::class.java)
}