mirror of
https://github.com/clangen/musikcube.git
synced 2024-10-02 04:52:32 +00:00
Small progress/seek bug fixes.
This commit is contained in:
parent
8cb85af8ed
commit
0261660df6
@ -4,6 +4,7 @@ import android.app.SearchManager
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.SharedPreferences
|
||||
import android.content.res.Resources
|
||||
import android.os.Bundle
|
||||
import android.text.TextUtils
|
||||
import android.view.Menu
|
||||
@ -164,9 +165,6 @@ fun BaseFragment.addFilterAction(menu: Menu, filterable: IFilterable?): Boolean
|
||||
return true
|
||||
}
|
||||
|
||||
fun AppCompatActivity.dpToPx(dp: Float): Float = dp * this.resources.displayMetrics.density
|
||||
|
||||
|
||||
fun AppCompatActivity.dialogVisible(tag: String): Boolean =
|
||||
this.supportFragmentManager.findFragmentByTag(tag) != null
|
||||
|
||||
@ -466,6 +464,11 @@ fun DialogFragment.hideKeyboard() =
|
||||
*
|
||||
*/
|
||||
|
||||
fun dpToPx(dp: Float): Float = dp * Resources.getSystem().displayMetrics.density
|
||||
|
||||
fun dpToPx(dp: Int): Float = dpToPx(dp.toFloat())
|
||||
|
||||
|
||||
fun <T1: Any, T2: Any, R: Any> letMany(p1: T1?, p2: T2?, block: (T1, T2) -> R?): R? {
|
||||
return if (p1 != null && p2 != null) block(p1, p2) else null
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ import io.casey.musikcube.remote.service.playback.PlaybackState
|
||||
import io.casey.musikcube.remote.ui.home.activity.MainActivity
|
||||
import io.casey.musikcube.remote.ui.navigation.Navigate
|
||||
import io.casey.musikcube.remote.ui.playqueue.fragment.PlayQueueFragment
|
||||
import io.casey.musikcube.remote.ui.shared.extension.dpToPx
|
||||
import io.casey.musikcube.remote.ui.shared.extension.fallback
|
||||
import io.casey.musikcube.remote.ui.shared.extension.getColorCompat
|
||||
import io.casey.musikcube.remote.ui.shared.extension.topOfStack
|
||||
@ -93,8 +94,8 @@ class TransportFragment: BaseFragment() {
|
||||
}
|
||||
|
||||
titleBar?.setOnInterceptTouchEventListener(object: InterceptTouchFrameLayout.OnInterceptTouchEventListener {
|
||||
override fun onInterceptTouchEvent(view: InterceptTouchFrameLayout, ev: MotionEvent, disallowIntercept: Boolean): Boolean {
|
||||
return when (ev.action) {
|
||||
override fun onInterceptTouchEvent(view: InterceptTouchFrameLayout, event: MotionEvent, disallowIntercept: Boolean): Boolean {
|
||||
return when (event.action) {
|
||||
MotionEvent.ACTION_DOWN,
|
||||
MotionEvent.ACTION_MOVE,
|
||||
MotionEvent.ACTION_CANCEL,
|
||||
@ -103,10 +104,10 @@ class TransportFragment: BaseFragment() {
|
||||
}
|
||||
}
|
||||
|
||||
override fun onTouchEvent(view: InterceptTouchFrameLayout, ev: MotionEvent): Boolean {
|
||||
seekTracker.update(ev)
|
||||
override fun onTouchEvent(view: InterceptTouchFrameLayout, event: MotionEvent): Boolean {
|
||||
seekTracker.update(event)
|
||||
if (seekTracker.processed) {
|
||||
when (ev.action) {
|
||||
when (event.action) {
|
||||
MotionEvent.ACTION_MOVE -> {
|
||||
seekOverride = (
|
||||
seekTracker.lastX.toFloat() /
|
||||
@ -122,7 +123,7 @@ class TransportFragment: BaseFragment() {
|
||||
}
|
||||
}
|
||||
}
|
||||
view.defaultOnTouchEvent(ev)
|
||||
view.defaultOnTouchEvent(event)
|
||||
return true
|
||||
}
|
||||
})
|
||||
@ -157,7 +158,7 @@ class TransportFragment: BaseFragment() {
|
||||
val buffered = playback.service.bufferedTime.toInt()
|
||||
val total = playback.service.duration.toInt()
|
||||
progress.max = total
|
||||
progress.secondaryProgress = if (buffered >= 100) 0 else buffered
|
||||
progress.secondaryProgress = if (buffered >= total) 0 else buffered
|
||||
|
||||
progress.progress = if (seekTracker.down && seekOverride >= 0) {
|
||||
seekOverride
|
||||
@ -175,7 +176,7 @@ class TransportFragment: BaseFragment() {
|
||||
val playing = state == PlaybackState.Playing
|
||||
val buffering = state == PlaybackState.Buffering
|
||||
|
||||
this.playPause.setText(if (playing) R.string.button_pause else R.string.button_play)
|
||||
this.playPause.setText(if (playing || buffering) R.string.button_pause else R.string.button_play)
|
||||
this.buffering.visibility = if (buffering) View.VISIBLE else View.GONE
|
||||
|
||||
if (state == PlaybackState.Stopped) {
|
||||
@ -253,11 +254,12 @@ class TransportFragment: BaseFragment() {
|
||||
}
|
||||
|
||||
val processed: Boolean
|
||||
get() { return totalDx >= 24 }
|
||||
get() { return dpToPx(SEEK_SLOP_PX) >= 24 }
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val TAG = "TransportFragment"
|
||||
private const val SEEK_SLOP_PX = 24
|
||||
fun create(): TransportFragment = TransportFragment()
|
||||
}
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ class InterceptTouchFrameLayout : FrameLayout {
|
||||
private var interceptor: OnInterceptTouchEventListener = DEFAULT_INTERCEPTOR
|
||||
|
||||
interface OnInterceptTouchEventListener {
|
||||
fun onInterceptTouchEvent(view: InterceptTouchFrameLayout, ev: MotionEvent, disallowIntercept: Boolean): Boolean
|
||||
fun onInterceptTouchEvent(view: InterceptTouchFrameLayout, event: MotionEvent, disallowIntercept: Boolean): Boolean
|
||||
fun onTouchEvent(view: InterceptTouchFrameLayout, event: MotionEvent): Boolean
|
||||
}
|
||||
|
||||
@ -30,8 +30,8 @@ class InterceptTouchFrameLayout : FrameLayout {
|
||||
}
|
||||
|
||||
override fun onInterceptTouchEvent(ev: MotionEvent): Boolean {
|
||||
val stealTouchEvent = interceptor.onInterceptTouchEvent(this, ev, disallowIntercept)
|
||||
return stealTouchEvent && !disallowIntercept || super.onInterceptTouchEvent(ev)
|
||||
val eatTouchEvent = interceptor.onInterceptTouchEvent(this, ev, disallowIntercept)
|
||||
return eatTouchEvent && !disallowIntercept || super.onInterceptTouchEvent(ev)
|
||||
}
|
||||
|
||||
override fun onTouchEvent(ev: MotionEvent): Boolean {
|
||||
@ -44,7 +44,7 @@ class InterceptTouchFrameLayout : FrameLayout {
|
||||
|
||||
companion object {
|
||||
private val DEFAULT_INTERCEPTOR = object: OnInterceptTouchEventListener {
|
||||
override fun onInterceptTouchEvent(view: InterceptTouchFrameLayout, ev: MotionEvent, disallowIntercept: Boolean): Boolean = false
|
||||
override fun onInterceptTouchEvent(view: InterceptTouchFrameLayout, event: MotionEvent, disallowIntercept: Boolean): Boolean = false
|
||||
override fun onTouchEvent(view: InterceptTouchFrameLayout, event: MotionEvent): Boolean = false
|
||||
}
|
||||
}
|
||||
|
@ -56,7 +56,7 @@
|
||||
android:id="@+id/title_bar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="28dp"
|
||||
android:minHeight="24dp"
|
||||
android:background="@drawable/category_button"
|
||||
android:transitionName="play_queue_transition">
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user