Fixed some Activity animations and some bugs in header fetching.

This commit is contained in:
casey langen 2017-12-09 15:20:44 -08:00
parent 256ce45bde
commit 4a0a0005d1
8 changed files with 57 additions and 12 deletions

View File

@ -17,6 +17,7 @@ import okhttp3.Request
import okhttp3.Response import okhttp3.Response
import java.io.File import java.io.File
import java.io.RandomAccessFile import java.io.RandomAccessFile
import java.net.SocketTimeoutException
import javax.inject.Inject import javax.inject.Inject
/** /**
@ -96,13 +97,18 @@ class GaplessHeaderService {
} }
if (res?.code() == 206) { if (res?.code() == 206) {
val bytes = res.body()?.bytes() try {
if (bytes?.isNotEmpty() == true) { val bytes = res.body()?.bytes()
RandomAccessFile(fn, "rw").use { if (bytes?.isNotEmpty() == true) {
it.seek(0) RandomAccessFile(fn, "rw").use {
it.write(bytes, 0, Math.min(bytes.size, HEADER_SIZE_BYTES)) it.seek(0)
it.write(bytes, 0, Math.min(bytes.size, HEADER_SIZE_BYTES))
}
newState = GaplessTrack.UPDATED
} }
newState = GaplessTrack.UPDATED }
catch (ex: SocketTimeoutException) {
newState = GaplessTrack.DOWNLOADED
} }
} }
else { else {

View File

@ -96,8 +96,10 @@ abstract class PlayerWrapper {
} }
gaplessDb.dao().queryByUrl(uri).forEach { gaplessDb.dao().queryByUrl(uri).forEach {
gaplessDb.dao().update(GaplessTrack.DOWNLOADED, it.url) if (it.state != GaplessTrack.UPDATED) {
gaplessService.schedule() gaplessDb.dao().update(GaplessTrack.DOWNLOADED, it.url)
gaplessService.schedule()
}
} }
} }
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())

View File

@ -405,6 +405,7 @@ class MainActivity : BaseActivity() {
private fun navigateToPlayQueue() { private fun navigateToPlayQueue() {
startActivity(PlayQueueActivity.getStartIntent(this@MainActivity, playback.service.queuePosition)) startActivity(PlayQueueActivity.getStartIntent(this@MainActivity, playback.service.queuePosition))
overridePendingTransition(R.anim.slide_up, R.anim.stay_put)
} }
private fun scheduleUpdateTime(immediate: Boolean) { private fun scheduleUpdateTime(immediate: Boolean) {

View File

@ -3,6 +3,7 @@ package io.casey.musikcube.remote.ui.playqueue.activity
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.view.MenuItem
import android.view.View import android.view.View
import com.simplecityapps.recyclerview_fastscroll.views.FastScrollRecyclerView import com.simplecityapps.recyclerview_fastscroll.views.FastScrollRecyclerView
import io.casey.musikcube.remote.R import io.casey.musikcube.remote.R
@ -88,6 +89,21 @@ class PlayQueueActivity : BaseActivity() {
} }
} }
override fun onOptionsItemSelected(item: MenuItem): Boolean {
val result = super.onOptionsItemSelected(item)
if (item.itemId == android.R.id.home) {
overridePendingTransition(R.anim.stay_put, R.anim.slide_down)
}
return result
}
override fun onBackPressed() {
super.onBackPressed()
overridePendingTransition(R.anim.stay_put, R.anim.slide_down)
}
private val adapterListener = object: PlayQueueAdapter.EventListener { private val adapterListener = object: PlayQueueAdapter.EventListener {
override fun onItemClicked(position: Int) = override fun onItemClicked(position: Int) =
playback.service.playAt(position) playback.service.playAt(position)

View File

@ -50,21 +50,24 @@ class TransportFragment: BaseFragment() {
private fun bindEventHandlers() { private fun bindEventHandlers() {
this.title = this.rootView.findViewById(R.id.track_title) this.title = this.rootView.findViewById(R.id.track_title)
this.title.isClickable = false
this.title.isFocusable = false
this.buffering = this.rootView.findViewById(R.id.buffering) this.buffering = this.rootView.findViewById(R.id.buffering)
val titleBar = this.rootView.findViewById<View>(R.id.title_bar) val titleBar = this.rootView.findViewById<View>(R.id.title_bar)
titleBar?.setOnClickListener { _: View -> titleBar?.setOnClickListener { _: View ->
if (playback.service.state != PlaybackState.Stopped) { if (playback.service.state != PlaybackState.Stopped) {
val intent = PlayQueueActivity startActivity(PlayQueueActivity
.getStartIntent(activity, playback.service.queuePosition) .getStartIntent(activity, playback.service.queuePosition)
.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP) .addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP))
startActivity(intent) activity.overridePendingTransition(R.anim.slide_up, R.anim.stay_put)
} }
} }
this.title.setOnLongClickListener { _: View -> titleBar?.setOnLongClickListener { _: View ->
startActivity(MainActivity.getStartIntent(activity)) startActivity(MainActivity.getStartIntent(activity))
true true
} }

View File

@ -0,0 +1,7 @@
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="250"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromYDelta="0"
android:toYDelta="100%" />
</set>

View File

@ -0,0 +1,7 @@
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="250"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromYDelta="100%"
android:toYDelta="0" />
</set>

View File

@ -0,0 +1,3 @@
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="0%p" android:toYDelta="0" android:duration="250"/>
</set>