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

113 lines
4.0 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
import android.os.Build
2018-12-08 03:33:02 +00:00
import android.os.Bundle
import android.view.View
import android.view.WindowManager
2018-12-09 06:38:34 +00:00
import androidx.core.view.ViewCompat
2018-12-08 03:33:02 +00:00
import code.name.monkey.appthemehelper.ThemeStore
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.activities.base.AbsMusicServiceActivity
import code.name.monkey.retromusic.fragments.player.lockscreen.LockScreenPlayerControlsFragment
2018-12-12 20:59:07 +00:00
import code.name.monkey.retromusic.glide.GlideApp
import code.name.monkey.retromusic.glide.RetroGlideExtension
2018-12-08 03:33:02 +00:00
import code.name.monkey.retromusic.glide.RetroMusicColoredTarget
import code.name.monkey.retromusic.helper.MusicPlayerRemote
2018-12-09 06:38:34 +00:00
import com.r0adkll.slidr.Slidr
import com.r0adkll.slidr.model.SlidrConfig
2019-04-04 06:07:55 +00:00
import com.r0adkll.slidr.model.SlidrListener
2018-12-09 06:38:34 +00:00
import com.r0adkll.slidr.model.SlidrPosition
2018-12-12 20:59:07 +00:00
import kotlinx.android.synthetic.main.activity_album.*
2018-12-08 03:33:02 +00:00
class LockScreenActivity : AbsMusicServiceActivity() {
2019-04-04 06:07:55 +00:00
private var fragment: LockScreenPlayerControlsFragment? = null
2018-12-08 03:33:02 +00:00
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
2019-04-04 06:07:55 +00:00
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)
}
2018-12-08 03:33:02 +00:00
setDrawUnderStatusBar()
setContentView(R.layout.activity_lock_screen_old_style)
hideStatusBar()
setStatusbarColorAuto()
setNavigationbarColorAuto()
setTaskDescriptionColorAuto()
setLightNavigationBar(true)
val config = SlidrConfig.Builder()
2019-04-04 06:07:55 +00:00
.listener(object : SlidrListener {
override fun onSlideStateChanged(state: Int) {
}
override fun onSlideChange(percent: Float) {
}
override fun onSlideOpened() {
}
override fun onSlideClosed(): Boolean {
2019-04-04 06:07:55 +00:00
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
2019-04-04 06:07:55 +00:00
}
})
2018-12-08 03:33:02 +00:00
.position(SlidrPosition.BOTTOM)
.build()
Slidr.attach(this, config)
2019-04-04 06:07:55 +00:00
fragment = supportFragmentManager.findFragmentById(R.id.playback_controls_fragment) as LockScreenPlayerControlsFragment?
2018-12-08 03:33:02 +00:00
2018-12-09 06:38:34 +00:00
findViewById<View>(R.id.slide).apply {
translationY = 100f
alpha = 0f
ViewCompat.animate(this)
.translationY(0f)
.alpha(1f)
.setDuration(1500)
.start()
}
2018-12-08 03:33:02 +00:00
findViewById<View>(R.id.root_layout).setBackgroundColor(ThemeStore.primaryColor(this))
}
override fun onPlayingMetaChanged() {
super.onPlayingMetaChanged()
updateSongs()
}
override fun onServiceConnected() {
super.onServiceConnected()
updateSongs()
}
private fun updateSongs() {
val song = MusicPlayerRemote.currentSong
2018-12-12 20:59:07 +00:00
GlideApp.with(this)
.asBitmapPalette()
.load(RetroGlideExtension.getSongModel(song))
.transition(RetroGlideExtension.getDefaultTransition())
.songOptions(song)
.dontAnimate()
.into(object : RetroMusicColoredTarget(image) {
2018-12-08 03:33:02 +00:00
override fun onColorReady(color: Int) {
2019-04-04 06:07:55 +00:00
fragment!!.setDark(color)
2018-12-08 03:33:02 +00:00
}
})
}
}