diff --git a/app/src/main/java/com/github/apognu/otter/activities/MainActivity.kt b/app/src/main/java/com/github/apognu/otter/activities/MainActivity.kt index a1b918e..42727b2 100644 --- a/app/src/main/java/com/github/apognu/otter/activities/MainActivity.kt +++ b/app/src/main/java/com/github/apognu/otter/activities/MainActivity.kt @@ -2,6 +2,7 @@ package com.github.apognu.otter.activities import android.animation.Animator import android.animation.AnimatorListenerAdapter +import android.animation.ObjectAnimator import android.annotation.SuppressLint import android.content.Intent import android.os.Bundle @@ -9,6 +10,7 @@ import android.view.Menu import android.view.MenuItem import android.view.View import android.view.ViewGroup +import android.view.animation.AccelerateDecelerateInterpolator import android.widget.SeekBar import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.DialogFragment @@ -298,6 +300,16 @@ class MainActivity : AppCompatActivity() { } } } + + is Event.QueueChanged -> { + findViewById(R.id.nav_queue)?.let { view -> + ObjectAnimator.ofFloat(view, View.ROTATION, 0f, 360f).let { + it.duration = 500 + it.interpolator = AccelerateDecelerateInterpolator() + it.start() + } + } + } } } } diff --git a/app/src/main/java/com/github/apognu/otter/fragments/BrowseFragment.kt b/app/src/main/java/com/github/apognu/otter/fragments/BrowseFragment.kt index 33eec35..ef01296 100644 --- a/app/src/main/java/com/github/apognu/otter/fragments/BrowseFragment.kt +++ b/app/src/main/java/com/github/apognu/otter/fragments/BrowseFragment.kt @@ -24,7 +24,7 @@ class BrowseFragment : Fragment() { tabs.getTabAt(0)?.select() pager.adapter = adapter - pager.offscreenPageLimit = 4 + pager.offscreenPageLimit = 3 } } diff --git a/app/src/main/java/com/github/apognu/otter/fragments/FavoritesFragment.kt b/app/src/main/java/com/github/apognu/otter/fragments/FavoritesFragment.kt index ef1c815..c263671 100644 --- a/app/src/main/java/com/github/apognu/otter/fragments/FavoritesFragment.kt +++ b/app/src/main/java/com/github/apognu/otter/fragments/FavoritesFragment.kt @@ -17,6 +17,8 @@ class FavoritesFragment : FunkwhaleFragment() { lateinit var favoritesRepository: FavoritesRepository + override var fetchOnCreate = false + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) diff --git a/app/src/main/java/com/github/apognu/otter/fragments/FunkwhaleFragment.kt b/app/src/main/java/com/github/apognu/otter/fragments/FunkwhaleFragment.kt index 3f725c5..b8c6a9b 100644 --- a/app/src/main/java/com/github/apognu/otter/fragments/FunkwhaleFragment.kt +++ b/app/src/main/java/com/github/apognu/otter/fragments/FunkwhaleFragment.kt @@ -24,6 +24,9 @@ abstract class FunkwhaleFragment> : Fragment lateinit var repository: Repository lateinit var adapter: A + open var fetchOnCreate = true + private var initialFetched = false + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { return inflater.inflate(viewRes, container, false) } @@ -49,14 +52,7 @@ abstract class FunkwhaleFragment> : Fragment swiper?.isRefreshing = true - repository.fetch().untilNetwork { - swiper?.isRefreshing = false - - onDataFetched(it) - - adapter.data = it.toMutableList() - adapter.notifyDataSetChanged() - } + if (fetchOnCreate) fetch() } override fun onResume() { @@ -74,7 +70,24 @@ abstract class FunkwhaleFragment> : Fragment adapter.notifyDataSetChanged() } } + + if (!fetchOnCreate) fetch() } open fun onDataFetched(data: List) {} + + private fun fetch() { + if (!initialFetched) { + initialFetched = true + + repository.fetch().untilNetwork { + swiper?.isRefreshing = false + + onDataFetched(it) + + adapter.data = it.toMutableList() + adapter.notifyDataSetChanged() + } + } + } } diff --git a/app/src/main/java/com/github/apognu/otter/repositories/FavoritesRepository.kt b/app/src/main/java/com/github/apognu/otter/repositories/FavoritesRepository.kt index 9446970..d29ec27 100644 --- a/app/src/main/java/com/github/apognu/otter/repositories/FavoritesRepository.kt +++ b/app/src/main/java/com/github/apognu/otter/repositories/FavoritesRepository.kt @@ -20,9 +20,8 @@ class FavoritesRepository(override val context: Context?) : Repository) = data.map { - it.apply { - it.favorite = true - } + it.favorite = true + it } fun addFavorite(id: Int) { diff --git a/app/src/main/java/com/github/apognu/otter/repositories/HttpUpstream.kt b/app/src/main/java/com/github/apognu/otter/repositories/HttpUpstream.kt index 7c56844..dbb2c88 100644 --- a/app/src/main/java/com/github/apognu/otter/repositories/HttpUpstream.kt +++ b/app/src/main/java/com/github/apognu/otter/repositories/HttpUpstream.kt @@ -51,6 +51,8 @@ class HttpUpstream>(private val behavior: Beha { response -> val data = data.plus(response.getData()) + log(data.size.toString()) + if (behavior == Behavior.Progressive || response.next == null) { channel.offer(Repository.Response(Repository.Origin.Network, data)) } else { @@ -75,6 +77,8 @@ class HttpUpstream>(private val behavior: Beha } suspend fun get(url: String): Result { + log(url) + val token = PowerPreference.getFileByName(AppContext.PREFS_CREDENTIALS).getString("access_token") val (_, response, result) = Fuel