Minor fragment/coil fixes

Update LoadingFragment path to prevent a crash on startup. Also switch how CoilUtils handles ArtistImageFetcher so that it doesnt cause a memory leak.
This commit is contained in:
OxygenCobalt 2020-09-07 16:57:40 -06:00
parent 031815d746
commit 4b50b80af4
6 changed files with 16 additions and 17 deletions

View file

@ -18,9 +18,9 @@ import com.google.android.material.tabs.TabLayout
import com.google.android.material.tabs.TabLayoutMediator
import org.oxycblt.auxio.databinding.ActivityMainBinding
import org.oxycblt.auxio.library.LibraryFragment
import org.oxycblt.auxio.library.SongsFragment
import org.oxycblt.auxio.music.MusicViewModel
import org.oxycblt.auxio.music.processing.MusicLoaderResponse
import org.oxycblt.auxio.library.SongsFragment
import org.oxycblt.auxio.theme.accent
import org.oxycblt.auxio.theme.getInactiveAlpha
import org.oxycblt.auxio.theme.getTransparentAccent
@ -58,7 +58,8 @@ class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView<ActivityMainBinding>(
binding = DataBindingUtil.setContentView(
this, R.layout.activity_main
)
@ -105,16 +106,17 @@ class MainActivity : AppCompatActivity() {
)
musicModel.response.observe(
this, {
this,
{
// When the load is completed successfully, remove the loadingFragment view
// and replace it with the ViewPager, now that its loaded.
if (it == MusicLoaderResponse.DONE) {
binding.loadingFragment.visibility = View.GONE
// binding.loadingFragment.visibility = View.GONE
binding.viewPager.visibility = View.VISIBLE
}
}
)
musicModel.go()
Log.d(this::class.simpleName, "Activity Created.")
}

View file

@ -11,8 +11,6 @@ import org.oxycblt.auxio.music.models.Album
import org.oxycblt.auxio.music.models.Artist
import org.oxycblt.auxio.music.models.Song
private var artistImageFetcher: ArtistImageFetcher? = null
// Get the cover art for a song or album
@BindingAdapter("coverArt")
fun ImageView.getCoverArt(song: Song) {
@ -44,14 +42,11 @@ fun ImageView.getArtistImage(artist: Artist) {
uris.add(artist.albums[i].coverUri)
}
// Initialize the fetcher if it hasn't been already.
if (artistImageFetcher == null) {
artistImageFetcher = ArtistImageFetcher(context)
}
val fetcher = ArtistImageFetcher(context)
getDefaultRequest(context, this)
.data(uris)
.fetcher(artistImageFetcher!!)
.fetcher(fetcher)
.error(R.drawable.ic_artist)
.build()
} else {

View file

@ -8,7 +8,6 @@ import android.view.ViewGroup
import androidx.databinding.DataBindingUtil
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import androidx.lifecycle.ViewModelProvider
import org.oxycblt.auxio.R
import org.oxycblt.auxio.databinding.FragmentLibraryBinding
import org.oxycblt.auxio.music.MusicViewModel

View file

@ -8,7 +8,6 @@ import android.view.ViewGroup
import androidx.databinding.DataBindingUtil
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import androidx.lifecycle.ViewModelProvider
import org.oxycblt.auxio.R
import org.oxycblt.auxio.databinding.FragmentSongsBinding
import org.oxycblt.auxio.music.MusicViewModel

View file

@ -6,7 +6,11 @@ import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import kotlinx.coroutines.*
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import org.oxycblt.auxio.R
import org.oxycblt.auxio.music.models.Album
import org.oxycblt.auxio.music.models.Artist

View file

@ -27,7 +27,7 @@
<androidx.fragment.app.FragmentContainerView
android:id="@+id/loading_fragment"
android:name="org.oxycblt.auxio.loading.LoadingFragment"
android:name="org.oxycblt.auxio.library.LoadingFragment"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/tabs"