mirror of
https://github.com/clangen/musikcube.git
synced 2024-10-02 04:52:32 +00:00
Some warning and deprecation cleanup.
This commit is contained in:
parent
deab36a89d
commit
dea9b6fe55
@ -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")
|
||||
|
@ -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) {
|
||||
|
@ -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
|
||||
|
@ -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,13 +411,10 @@ 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 -> {
|
||||
val db = (activity as SettingsActivity).connectionsDb
|
||||
val saveAs = SaveAsTask(db, connection, true)
|
||||
(activity as SettingsActivity).runner.run(SaveAsTask.nameFor(connection), saveAs)
|
||||
}
|
||||
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()
|
||||
@ -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)
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
}
|
Loading…
Reference in New Issue
Block a user