PlayerAndroid/app/src/main/java/code/name/monkey/retromusic/activities/LockScreenActivity.kt

101 lines
2.9 KiB
Kotlin
Raw Normal View History

2019-04-20 05:29:45 +00:00
package code.name.monkey.retromusic.activities
2018-12-08 03:33:02 +00:00
2019-04-04 06:07:55 +00:00
import android.app.KeyguardManager
import android.content.Context
2019-11-15 17:44:42 +00:00
import android.os.*
import android.view.*
2018-12-09 06:38:34 +00:00
import androidx.core.view.ViewCompat
import code.name.monkey.appthemehelper.util.ATHUtil
2018-12-08 03:33:02 +00:00
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.activities.base.AbsMusicServiceActivity
import code.name.monkey.retromusic.fragments.player.lockscreen.LockScreenPlayerControlsFragment
2019-11-15 17:44:42 +00:00
import code.name.monkey.retromusic.glide.*
2018-12-08 03:33:02 +00:00
import code.name.monkey.retromusic.helper.MusicPlayerRemote
import com.bumptech.glide.Glide
2018-12-09 06:38:34 +00:00
import com.r0adkll.slidr.Slidr
2019-11-15 17:44:42 +00:00
import com.r0adkll.slidr.model.*
2019-11-13 13:07:44 +00:00
import kotlinx.android.synthetic.main.activity_lock_screen.*
2018-12-08 03:33:02 +00:00
class LockScreenActivity : AbsMusicServiceActivity() {
2019-11-15 17:44:42 +00:00
private var fragment: LockScreenPlayerControlsFragment? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
setShowWhenLocked(true)
setTurnScreenOn(true)
} else {
this.window.addFlags(
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD or WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED or WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
)
}
setDrawUnderStatusBar()
setContentView(R.layout.activity_lock_screen)
hideStatusBar()
setStatusbarColorAuto()
2019-12-05 18:18:54 +00:00
setNavigationbarColorAuto()
2019-11-15 17:44:42 +00:00
setTaskDescriptionColorAuto()
setLightNavigationBar(true)
val config = SlidrConfig.Builder().listener(object : SlidrListener {
override fun onSlideStateChanged(state: Int) {
}
override fun onSlideChange(percent: Float) {
}
override fun onSlideOpened() {
}
override fun onSlideClosed(): Boolean {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
val keyguardManager = getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager
keyguardManager.requestDismissKeyguard(this@LockScreenActivity, null)
}
finish()
return true
}
}).position(SlidrPosition.BOTTOM).build()
Slidr.attach(this, config)
fragment = supportFragmentManager.findFragmentById(R.id.playback_controls_fragment) as LockScreenPlayerControlsFragment?
findViewById<View>(R.id.slide).apply {
translationY = 100f
alpha = 0f
ViewCompat.animate(this).translationY(0f).alpha(1f).setDuration(1500).start()
}
findViewById<View>(R.id.root_layout).setBackgroundColor(
ATHUtil.resolveColor(
this, R.attr.colorPrimary
)
)
}
override fun onPlayingMetaChanged() {
super.onPlayingMetaChanged()
updateSongs()
}
override fun onServiceConnected() {
super.onServiceConnected()
updateSongs()
}
private fun updateSongs() {
val song = MusicPlayerRemote.currentSong
SongGlideRequest.Builder.from(Glide.with(this), song).checkIgnoreMediaStore(this)
.generatePalette(this).build().dontAnimate()
.into(object : RetroMusicColoredTarget(image) {
override fun onColorReady(color: Int) {
fragment?.setDark(color)
}
})
}
2018-12-08 03:33:02 +00:00
}