Misc refactoring.
This commit is contained in:
parent
5f495f54e5
commit
31063fb40f
|
@ -7,7 +7,6 @@ import androidx.appcompat.app.AppCompatActivity
|
||||||
import com.github.apognu.otter.R
|
import com.github.apognu.otter.R
|
||||||
import com.github.apognu.otter.fragments.LoginDialog
|
import com.github.apognu.otter.fragments.LoginDialog
|
||||||
import com.github.apognu.otter.utils.AppContext
|
import com.github.apognu.otter.utils.AppContext
|
||||||
import com.github.apognu.otter.utils.log
|
|
||||||
import com.github.kittinunf.fuel.Fuel
|
import com.github.kittinunf.fuel.Fuel
|
||||||
import com.github.kittinunf.fuel.coroutines.awaitObjectResult
|
import com.github.kittinunf.fuel.coroutines.awaitObjectResult
|
||||||
import com.github.kittinunf.fuel.gson.gsonDeserializerOf
|
import com.github.kittinunf.fuel.gson.gsonDeserializerOf
|
||||||
|
|
|
@ -43,7 +43,7 @@ class AlbumsAdapter(val context: Context?, val listener: OnAlbumClickListener) :
|
||||||
holder.artist.text = album.artist.name
|
holder.artist.text = album.artist.name
|
||||||
}
|
}
|
||||||
|
|
||||||
inner class ViewHolder(view: View, val listener: OnAlbumClickListener) : RecyclerView.ViewHolder(view), View.OnClickListener {
|
inner class ViewHolder(view: View, private val listener: OnAlbumClickListener) : RecyclerView.ViewHolder(view), View.OnClickListener {
|
||||||
val art = view.art
|
val art = view.art
|
||||||
val title = view.title
|
val title = view.title
|
||||||
val artist = view.artist
|
val artist = view.artist
|
||||||
|
|
|
@ -13,7 +13,7 @@ import com.squareup.picasso.Picasso
|
||||||
import jp.wasabeef.picasso.transformations.RoundedCornersTransformation
|
import jp.wasabeef.picasso.transformations.RoundedCornersTransformation
|
||||||
import kotlinx.android.synthetic.main.row_album_grid.view.*
|
import kotlinx.android.synthetic.main.row_album_grid.view.*
|
||||||
|
|
||||||
class AlbumsGridAdapter(val context: Context?, val listener: OnAlbumClickListener) : FunkwhaleAdapter<Album, AlbumsGridAdapter.ViewHolder>() {
|
class AlbumsGridAdapter(val context: Context?, private val listener: OnAlbumClickListener) : FunkwhaleAdapter<Album, AlbumsGridAdapter.ViewHolder>() {
|
||||||
interface OnAlbumClickListener {
|
interface OnAlbumClickListener {
|
||||||
fun onClick(view: View?, album: Album)
|
fun onClick(view: View?, album: Album)
|
||||||
}
|
}
|
||||||
|
@ -41,7 +41,7 @@ class AlbumsGridAdapter(val context: Context?, val listener: OnAlbumClickListene
|
||||||
holder.title.text = album.title
|
holder.title.text = album.title
|
||||||
}
|
}
|
||||||
|
|
||||||
inner class ViewHolder(view: View, val listener: OnAlbumClickListener) : RecyclerView.ViewHolder(view), View.OnClickListener {
|
inner class ViewHolder(view: View, private val listener: OnAlbumClickListener) : RecyclerView.ViewHolder(view), View.OnClickListener {
|
||||||
val cover = view.cover
|
val cover = view.cover
|
||||||
val title = view.title
|
val title = view.title
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ import com.squareup.picasso.Picasso
|
||||||
import jp.wasabeef.picasso.transformations.RoundedCornersTransformation
|
import jp.wasabeef.picasso.transformations.RoundedCornersTransformation
|
||||||
import kotlinx.android.synthetic.main.row_artist.view.*
|
import kotlinx.android.synthetic.main.row_artist.view.*
|
||||||
|
|
||||||
class ArtistsAdapter(val context: Context?, val listener: OnArtistClickListener) : FunkwhaleAdapter<Artist, ArtistsAdapter.ViewHolder>() {
|
class ArtistsAdapter(val context: Context?, private val listener: OnArtistClickListener) : FunkwhaleAdapter<Artist, ArtistsAdapter.ViewHolder>() {
|
||||||
interface OnArtistClickListener {
|
interface OnArtistClickListener {
|
||||||
fun onClick(holder: View?, artist: Artist)
|
fun onClick(holder: View?, artist: Artist)
|
||||||
}
|
}
|
||||||
|
@ -53,7 +53,7 @@ class ArtistsAdapter(val context: Context?, val listener: OnArtistClickListener)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
inner class ViewHolder(view: View, val listener: OnArtistClickListener) : RecyclerView.ViewHolder(view), View.OnClickListener {
|
inner class ViewHolder(view: View, private val listener: OnArtistClickListener) : RecyclerView.ViewHolder(view), View.OnClickListener {
|
||||||
val art = view.art
|
val art = view.art
|
||||||
val name = view.name
|
val name = view.name
|
||||||
val albums = view.albums
|
val albums = view.albums
|
||||||
|
|
|
@ -2,16 +2,13 @@ package com.github.apognu.otter.adapters
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.graphics.Color
|
|
||||||
import android.graphics.Typeface
|
import android.graphics.Typeface
|
||||||
import android.graphics.drawable.ColorDrawable
|
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.view.Gravity
|
import android.view.Gravity
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import androidx.appcompat.widget.PopupMenu
|
import androidx.appcompat.widget.PopupMenu
|
||||||
import androidx.recyclerview.widget.ItemTouchHelper
|
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import com.github.apognu.otter.R
|
import com.github.apognu.otter.R
|
||||||
import com.github.apognu.otter.fragments.FunkwhaleAdapter
|
import com.github.apognu.otter.fragments.FunkwhaleAdapter
|
||||||
|
@ -21,7 +18,7 @@ import jp.wasabeef.picasso.transformations.RoundedCornersTransformation
|
||||||
import kotlinx.android.synthetic.main.row_track.view.*
|
import kotlinx.android.synthetic.main.row_track.view.*
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
class FavoritesAdapter(private val context: Context?, val favoriteListener: OnFavoriteListener, val fromQueue: Boolean = false) : FunkwhaleAdapter<Favorite, FavoritesAdapter.ViewHolder>() {
|
class FavoritesAdapter(private val context: Context?, private val favoriteListener: OnFavoriteListener, val fromQueue: Boolean = false) : FunkwhaleAdapter<Favorite, FavoritesAdapter.ViewHolder>() {
|
||||||
interface OnFavoriteListener {
|
interface OnFavoriteListener {
|
||||||
fun onToggleFavorite(id: Int, state: Boolean)
|
fun onToggleFavorite(id: Int, state: Boolean)
|
||||||
}
|
}
|
||||||
|
@ -109,7 +106,7 @@ class FavoritesAdapter(private val context: Context?, val favoriteListener: OnFa
|
||||||
|
|
||||||
fun onItemMove(oldPosition: Int, newPosition: Int) {
|
fun onItemMove(oldPosition: Int, newPosition: Int) {
|
||||||
if (oldPosition < newPosition) {
|
if (oldPosition < newPosition) {
|
||||||
for (i in oldPosition.rangeTo(newPosition - 1)) {
|
for (i in oldPosition.until(newPosition)) {
|
||||||
Collections.swap(data, i, i + 1)
|
Collections.swap(data, i, i + 1)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -123,7 +120,6 @@ class FavoritesAdapter(private val context: Context?, val favoriteListener: OnFa
|
||||||
}
|
}
|
||||||
|
|
||||||
inner class ViewHolder(view: View, val context: Context?) : RecyclerView.ViewHolder(view), View.OnClickListener {
|
inner class ViewHolder(view: View, val context: Context?) : RecyclerView.ViewHolder(view), View.OnClickListener {
|
||||||
val handle = view.handle
|
|
||||||
val cover = view.cover
|
val cover = view.cover
|
||||||
val title = view.title
|
val title = view.title
|
||||||
val artist = view.artist
|
val artist = view.artist
|
||||||
|
@ -144,40 +140,4 @@ class FavoritesAdapter(private val context: Context?, val favoriteListener: OnFa
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
inner class TouchHelperCallback : ItemTouchHelper.Callback() {
|
|
||||||
override fun isLongPressDragEnabled() = false
|
|
||||||
|
|
||||||
override fun isItemViewSwipeEnabled() = false
|
|
||||||
|
|
||||||
override fun getMovementFlags(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder) =
|
|
||||||
makeMovementFlags(ItemTouchHelper.UP or ItemTouchHelper.DOWN, 0)
|
|
||||||
|
|
||||||
override fun onMove(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder, target: RecyclerView.ViewHolder): Boolean {
|
|
||||||
onItemMove(viewHolder.adapterPosition, target.adapterPosition)
|
|
||||||
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) {}
|
|
||||||
|
|
||||||
@SuppressLint("NewApi")
|
|
||||||
override fun onSelectedChanged(viewHolder: RecyclerView.ViewHolder?, actionState: Int) {
|
|
||||||
if (actionState == ItemTouchHelper.ACTION_STATE_DRAG) {
|
|
||||||
context?.let {
|
|
||||||
Build.VERSION_CODES.M.onApi(
|
|
||||||
{ viewHolder?.itemView?.background = ColorDrawable(context.resources.getColor(R.color.colorSelected, null)) },
|
|
||||||
{ viewHolder?.itemView?.background = ColorDrawable(context.resources.getColor(R.color.colorSelected)) })
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
super.onSelectedChanged(viewHolder, actionState)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun clearView(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder) {
|
|
||||||
viewHolder.itemView.background = ColorDrawable(Color.TRANSPARENT)
|
|
||||||
|
|
||||||
super.clearView(recyclerView, viewHolder)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -112,7 +112,7 @@ class PlaylistTracksAdapter(private val context: Context?, val fromQueue: Boolea
|
||||||
|
|
||||||
fun onItemMove(oldPosition: Int, newPosition: Int) {
|
fun onItemMove(oldPosition: Int, newPosition: Int) {
|
||||||
if (oldPosition < newPosition) {
|
if (oldPosition < newPosition) {
|
||||||
for (i in oldPosition.rangeTo(newPosition - 1)) {
|
for (i in oldPosition.until(newPosition)) {
|
||||||
Collections.swap(data, i, i + 1)
|
Collections.swap(data, i, i + 1)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -11,7 +11,7 @@ import com.github.apognu.otter.utils.Playlist
|
||||||
import com.squareup.picasso.Picasso
|
import com.squareup.picasso.Picasso
|
||||||
import kotlinx.android.synthetic.main.row_playlist.view.*
|
import kotlinx.android.synthetic.main.row_playlist.view.*
|
||||||
|
|
||||||
class PlaylistsAdapter(val context: Context?, val listener: OnPlaylistClickListener) : FunkwhaleAdapter<Playlist, PlaylistsAdapter.ViewHolder>() {
|
class PlaylistsAdapter(val context: Context?, private val listener: OnPlaylistClickListener) : FunkwhaleAdapter<Playlist, PlaylistsAdapter.ViewHolder>() {
|
||||||
interface OnPlaylistClickListener {
|
interface OnPlaylistClickListener {
|
||||||
fun onClick(holder: View?, playlist: Playlist)
|
fun onClick(holder: View?, playlist: Playlist)
|
||||||
}
|
}
|
||||||
|
@ -49,7 +49,7 @@ class PlaylistsAdapter(val context: Context?, val listener: OnPlaylistClickListe
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
inner class ViewHolder(view: View, val listener: OnPlaylistClickListener) : RecyclerView.ViewHolder(view), View.OnClickListener {
|
inner class ViewHolder(view: View, private val listener: OnPlaylistClickListener) : RecyclerView.ViewHolder(view), View.OnClickListener {
|
||||||
val name = view.name
|
val name = view.name
|
||||||
val summary = view.summary
|
val summary = view.summary
|
||||||
|
|
||||||
|
|
|
@ -1,32 +0,0 @@
|
||||||
package com.github.apognu.otter.adapters
|
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import android.view.LayoutInflater
|
|
||||||
import android.view.View
|
|
||||||
import android.view.ViewGroup
|
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
|
||||||
import com.github.apognu.otter.R
|
|
||||||
import com.github.apognu.otter.utils.Track
|
|
||||||
import kotlinx.android.synthetic.main.row_track.view.*
|
|
||||||
|
|
||||||
class SearchResultsAdapter(val context: Context?) : RecyclerView.Adapter<SearchResultsAdapter.ViewHolder>() {
|
|
||||||
var tracks: List<Track> = listOf()
|
|
||||||
|
|
||||||
override fun getItemCount() = tracks.size
|
|
||||||
|
|
||||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
|
|
||||||
val view = LayoutInflater.from(context).inflate(R.layout.row_track, parent, false)
|
|
||||||
|
|
||||||
return ViewHolder(view)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
|
||||||
val artist = tracks[position]
|
|
||||||
|
|
||||||
holder.title.text = artist.title
|
|
||||||
}
|
|
||||||
|
|
||||||
inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
|
|
||||||
val title = view.title
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -18,7 +18,7 @@ import jp.wasabeef.picasso.transformations.RoundedCornersTransformation
|
||||||
import kotlinx.android.synthetic.main.row_track.view.*
|
import kotlinx.android.synthetic.main.row_track.view.*
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
class TracksAdapter(private val context: Context?, val favoriteListener: OnFavoriteListener? = null, val fromQueue: Boolean = false) : FunkwhaleAdapter<Track, TracksAdapter.ViewHolder>() {
|
class TracksAdapter(private val context: Context?, private val favoriteListener: OnFavoriteListener? = null, val fromQueue: Boolean = false) : FunkwhaleAdapter<Track, TracksAdapter.ViewHolder>() {
|
||||||
interface OnFavoriteListener {
|
interface OnFavoriteListener {
|
||||||
fun onToggleFavorite(id: Int, state: Boolean)
|
fun onToggleFavorite(id: Int, state: Boolean)
|
||||||
}
|
}
|
||||||
|
@ -132,7 +132,7 @@ class TracksAdapter(private val context: Context?, val favoriteListener: OnFavor
|
||||||
|
|
||||||
fun onItemMove(oldPosition: Int, newPosition: Int) {
|
fun onItemMove(oldPosition: Int, newPosition: Int) {
|
||||||
if (oldPosition < newPosition) {
|
if (oldPosition < newPosition) {
|
||||||
for (i in oldPosition.rangeTo(newPosition - 1)) {
|
for (i in oldPosition.until(newPosition)) {
|
||||||
Collections.swap(data, i, i + 1)
|
Collections.swap(data, i, i + 1)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -64,7 +64,7 @@ class AlbumsFragment : FunkwhaleFragment<Album, AlbumsAdapter>() {
|
||||||
}
|
}
|
||||||
|
|
||||||
inner class OnAlbumClickListener : AlbumsAdapter.OnAlbumClickListener {
|
inner class OnAlbumClickListener : AlbumsAdapter.OnAlbumClickListener {
|
||||||
override fun onClick(holder: View?, album: Album) {
|
override fun onClick(view: View?, album: Album) {
|
||||||
(context as? MainActivity)?.let { activity ->
|
(context as? MainActivity)?.let { activity ->
|
||||||
exitTransition = Fade().apply {
|
exitTransition = Fade().apply {
|
||||||
duration = AppContext.TRANSITION_DURATION
|
duration = AppContext.TRANSITION_DURATION
|
||||||
|
|
|
@ -29,7 +29,7 @@ class AlbumsGridFragment : FunkwhaleFragment<Album, AlbumsGridAdapter>() {
|
||||||
}
|
}
|
||||||
|
|
||||||
inner class OnAlbumClickListener : AlbumsGridAdapter.OnAlbumClickListener {
|
inner class OnAlbumClickListener : AlbumsGridAdapter.OnAlbumClickListener {
|
||||||
override fun onClick(holder: View?, album: Album) {
|
override fun onClick(view: View?, album: Album) {
|
||||||
(context as? MainActivity)?.let { activity ->
|
(context as? MainActivity)?.let { activity ->
|
||||||
onViewPager {
|
onViewPager {
|
||||||
exitTransition = Fade().apply {
|
exitTransition = Fade().apply {
|
||||||
|
|
|
@ -21,10 +21,10 @@ class TracksFragment : FunkwhaleFragment<Track, TracksAdapter>() {
|
||||||
|
|
||||||
lateinit var favoritesRepository: FavoritesRepository
|
lateinit var favoritesRepository: FavoritesRepository
|
||||||
|
|
||||||
var albumId = 0
|
private var albumId = 0
|
||||||
var albumArtist = ""
|
private var albumArtist = ""
|
||||||
var albumTitle = ""
|
private var albumTitle = ""
|
||||||
var albumCover = ""
|
private var albumCover = ""
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun new(album: Album): TracksFragment {
|
fun new(album: Album): TracksFragment {
|
||||||
|
|
|
@ -20,16 +20,15 @@ import kotlinx.coroutines.Dispatchers.IO
|
||||||
import kotlinx.coroutines.GlobalScope
|
import kotlinx.coroutines.GlobalScope
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
class MediaControlsManager(val context: Service, val mediaSession: MediaSessionCompat) {
|
class MediaControlsManager(val context: Service, private val mediaSession: MediaSessionCompat) {
|
||||||
companion object {
|
companion object {
|
||||||
const val NOTIFICATION_ACTION_OPEN_QUEUE = 0
|
const val NOTIFICATION_ACTION_OPEN_QUEUE = 0
|
||||||
const val NOTIFICATION_ACTION_PREVIOUS = 1
|
const val NOTIFICATION_ACTION_PREVIOUS = 1
|
||||||
const val NOTIFICATION_ACTION_TOGGLE = 2
|
const val NOTIFICATION_ACTION_TOGGLE = 2
|
||||||
const val NOTIFICATION_ACTION_NEXT = 3
|
const val NOTIFICATION_ACTION_NEXT = 3
|
||||||
const val NOTIFICATION_ACTION_FAVORITE = 4
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var notification: Notification? = null
|
private var notification: Notification? = null
|
||||||
|
|
||||||
fun updateNotification(track: Track?, playing: Boolean) {
|
fun updateNotification(track: Track?, playing: Boolean) {
|
||||||
if (notification == null && !playing) return
|
if (notification == null && !playing) return
|
||||||
|
|
|
@ -9,6 +9,7 @@ import android.media.AudioAttributes
|
||||||
import android.media.AudioFocusRequest
|
import android.media.AudioFocusRequest
|
||||||
import android.media.AudioManager
|
import android.media.AudioManager
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
|
import android.os.IBinder
|
||||||
import android.support.v4.media.session.MediaSessionCompat
|
import android.support.v4.media.session.MediaSessionCompat
|
||||||
import android.view.KeyEvent
|
import android.view.KeyEvent
|
||||||
import com.github.apognu.otter.R
|
import com.github.apognu.otter.R
|
||||||
|
@ -214,7 +215,7 @@ class PlayerService : Service() {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onBind(intent: Intent?) = null
|
override fun onBind(intent: Intent?): IBinder? = null
|
||||||
|
|
||||||
@SuppressLint("NewApi")
|
@SuppressLint("NewApi")
|
||||||
override fun onDestroy() {
|
override fun onDestroy() {
|
||||||
|
|
|
@ -17,8 +17,6 @@ class SearchRepository(override val context: Context?, query: String) : Reposito
|
||||||
override fun cache(data: List<Track>) = TracksCache(data)
|
override fun cache(data: List<Track>) = TracksCache(data)
|
||||||
override fun uncache(reader: BufferedReader) = gsonDeserializerOf(TracksCache::class.java).deserialize(reader)
|
override fun uncache(reader: BufferedReader) = gsonDeserializerOf(TracksCache::class.java).deserialize(reader)
|
||||||
|
|
||||||
var query: String? = null
|
|
||||||
|
|
||||||
override fun onDataFetched(data: List<Track>): List<Track> = runBlocking {
|
override fun onDataFetched(data: List<Track>): List<Track> = runBlocking {
|
||||||
val favorites = FavoritesRepository(context).fetch(Origin.Network.origin).receive().data
|
val favorites = FavoritesRepository(context).fetch(Origin.Network.origin).receive().data
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,7 @@
|
||||||
package com.github.apognu.otter.utils
|
package com.github.apognu.otter.utils
|
||||||
|
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.view.ViewGroup
|
|
||||||
import android.view.animation.Interpolator
|
|
||||||
import androidx.core.view.doOnPreDraw
|
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.transition.TransitionSet
|
|
||||||
import com.github.apognu.otter.fragments.BrowseFragment
|
import com.github.apognu.otter.fragments.BrowseFragment
|
||||||
import com.github.apognu.otter.repositories.Repository
|
import com.github.apognu.otter.repositories.Repository
|
||||||
import kotlinx.coroutines.Dispatchers.Main
|
import kotlinx.coroutines.Dispatchers.Main
|
||||||
|
@ -35,14 +31,6 @@ inline fun <D> Channel<Repository.Response<D>>.untilNetwork(context: CoroutineCo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun TransitionSet.setCommonInterpolator(interpolator: Interpolator): TransitionSet {
|
|
||||||
(0 until transitionCount)
|
|
||||||
.map { index -> getTransitionAt(index) }
|
|
||||||
.forEach { transition -> transition.interpolator = interpolator }
|
|
||||||
|
|
||||||
return this
|
|
||||||
}
|
|
||||||
|
|
||||||
fun Fragment.onViewPager(block: Fragment.() -> Unit) {
|
fun Fragment.onViewPager(block: Fragment.() -> Unit) {
|
||||||
for (f in activity?.supportFragmentManager?.fragments ?: listOf()) {
|
for (f in activity?.supportFragmentManager?.fragments ?: listOf()) {
|
||||||
if (f is BrowseFragment) {
|
if (f is BrowseFragment) {
|
||||||
|
@ -51,12 +39,6 @@ fun Fragment.onViewPager(block: Fragment.() -> Unit) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Fragment.startTransitions() {
|
|
||||||
(view?.parent as? ViewGroup)?.doOnPreDraw {
|
|
||||||
startPostponedEnterTransition()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun <T> Int.onApi(block: () -> T) {
|
fun <T> Int.onApi(block: () -> T) {
|
||||||
if (Build.VERSION.SDK_INT >= this) {
|
if (Build.VERSION.SDK_INT >= this) {
|
||||||
block()
|
block()
|
||||||
|
@ -72,17 +54,17 @@ fun <T, U> Int.onApi(block: () -> T, elseBlock: (() -> U)) {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun <T> Int.onApiForResult(block: () -> T, elseBlock: (() -> T)): T {
|
fun <T> Int.onApiForResult(block: () -> T, elseBlock: (() -> T)): T {
|
||||||
if (Build.VERSION.SDK_INT >= this) {
|
return if (Build.VERSION.SDK_INT >= this) {
|
||||||
return block()
|
block()
|
||||||
} else {
|
} else {
|
||||||
return elseBlock()
|
elseBlock()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun <T> T.applyOnApi(api: Int, block: T.() -> T): T {
|
fun <T> T.applyOnApi(api: Int, block: T.() -> T): T {
|
||||||
if (Build.VERSION.SDK_INT >= api) {
|
return if (Build.VERSION.SDK_INT >= api) {
|
||||||
return block()
|
block()
|
||||||
} else {
|
} else {
|
||||||
return this
|
this
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -9,7 +9,7 @@ import androidx.transition.TransitionValues
|
||||||
import androidx.transition.Visibility
|
import androidx.transition.Visibility
|
||||||
|
|
||||||
class ExplodeReveal : Visibility() {
|
class ExplodeReveal : Visibility() {
|
||||||
val SCREEN_BOUNDS = "screenBounds"
|
private val SCREEN_BOUNDS = "screenBounds"
|
||||||
|
|
||||||
private val locations = IntArray(2)
|
private val locations = IntArray(2)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue