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:
parent
031815d746
commit
4b50b80af4
6 changed files with 16 additions and 17 deletions
|
@ -18,9 +18,9 @@ import com.google.android.material.tabs.TabLayout
|
||||||
import com.google.android.material.tabs.TabLayoutMediator
|
import com.google.android.material.tabs.TabLayoutMediator
|
||||||
import org.oxycblt.auxio.databinding.ActivityMainBinding
|
import org.oxycblt.auxio.databinding.ActivityMainBinding
|
||||||
import org.oxycblt.auxio.library.LibraryFragment
|
import org.oxycblt.auxio.library.LibraryFragment
|
||||||
|
import org.oxycblt.auxio.library.SongsFragment
|
||||||
import org.oxycblt.auxio.music.MusicViewModel
|
import org.oxycblt.auxio.music.MusicViewModel
|
||||||
import org.oxycblt.auxio.music.processing.MusicLoaderResponse
|
import org.oxycblt.auxio.music.processing.MusicLoaderResponse
|
||||||
import org.oxycblt.auxio.library.SongsFragment
|
|
||||||
import org.oxycblt.auxio.theme.accent
|
import org.oxycblt.auxio.theme.accent
|
||||||
import org.oxycblt.auxio.theme.getInactiveAlpha
|
import org.oxycblt.auxio.theme.getInactiveAlpha
|
||||||
import org.oxycblt.auxio.theme.getTransparentAccent
|
import org.oxycblt.auxio.theme.getTransparentAccent
|
||||||
|
@ -58,7 +58,8 @@ class MainActivity : AppCompatActivity() {
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
binding = DataBindingUtil.setContentView<ActivityMainBinding>(
|
|
||||||
|
binding = DataBindingUtil.setContentView(
|
||||||
this, R.layout.activity_main
|
this, R.layout.activity_main
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -105,16 +106,17 @@ class MainActivity : AppCompatActivity() {
|
||||||
)
|
)
|
||||||
|
|
||||||
musicModel.response.observe(
|
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) {
|
if (it == MusicLoaderResponse.DONE) {
|
||||||
binding.loadingFragment.visibility = View.GONE
|
// binding.loadingFragment.visibility = View.GONE
|
||||||
binding.viewPager.visibility = View.VISIBLE
|
binding.viewPager.visibility = View.VISIBLE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
musicModel.go()
|
|
||||||
|
|
||||||
Log.d(this::class.simpleName, "Activity Created.")
|
Log.d(this::class.simpleName, "Activity Created.")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,8 +11,6 @@ import org.oxycblt.auxio.music.models.Album
|
||||||
import org.oxycblt.auxio.music.models.Artist
|
import org.oxycblt.auxio.music.models.Artist
|
||||||
import org.oxycblt.auxio.music.models.Song
|
import org.oxycblt.auxio.music.models.Song
|
||||||
|
|
||||||
private var artistImageFetcher: ArtistImageFetcher? = null
|
|
||||||
|
|
||||||
// Get the cover art for a song or album
|
// Get the cover art for a song or album
|
||||||
@BindingAdapter("coverArt")
|
@BindingAdapter("coverArt")
|
||||||
fun ImageView.getCoverArt(song: Song) {
|
fun ImageView.getCoverArt(song: Song) {
|
||||||
|
@ -44,14 +42,11 @@ fun ImageView.getArtistImage(artist: Artist) {
|
||||||
uris.add(artist.albums[i].coverUri)
|
uris.add(artist.albums[i].coverUri)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialize the fetcher if it hasn't been already.
|
val fetcher = ArtistImageFetcher(context)
|
||||||
if (artistImageFetcher == null) {
|
|
||||||
artistImageFetcher = ArtistImageFetcher(context)
|
|
||||||
}
|
|
||||||
|
|
||||||
getDefaultRequest(context, this)
|
getDefaultRequest(context, this)
|
||||||
.data(uris)
|
.data(uris)
|
||||||
.fetcher(artistImageFetcher!!)
|
.fetcher(fetcher)
|
||||||
.error(R.drawable.ic_artist)
|
.error(R.drawable.ic_artist)
|
||||||
.build()
|
.build()
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -8,7 +8,6 @@ import android.view.ViewGroup
|
||||||
import androidx.databinding.DataBindingUtil
|
import androidx.databinding.DataBindingUtil
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.fragment.app.activityViewModels
|
import androidx.fragment.app.activityViewModels
|
||||||
import androidx.lifecycle.ViewModelProvider
|
|
||||||
import org.oxycblt.auxio.R
|
import org.oxycblt.auxio.R
|
||||||
import org.oxycblt.auxio.databinding.FragmentLibraryBinding
|
import org.oxycblt.auxio.databinding.FragmentLibraryBinding
|
||||||
import org.oxycblt.auxio.music.MusicViewModel
|
import org.oxycblt.auxio.music.MusicViewModel
|
||||||
|
|
|
@ -8,7 +8,6 @@ import android.view.ViewGroup
|
||||||
import androidx.databinding.DataBindingUtil
|
import androidx.databinding.DataBindingUtil
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.fragment.app.activityViewModels
|
import androidx.fragment.app.activityViewModels
|
||||||
import androidx.lifecycle.ViewModelProvider
|
|
||||||
import org.oxycblt.auxio.R
|
import org.oxycblt.auxio.R
|
||||||
import org.oxycblt.auxio.databinding.FragmentSongsBinding
|
import org.oxycblt.auxio.databinding.FragmentSongsBinding
|
||||||
import org.oxycblt.auxio.music.MusicViewModel
|
import org.oxycblt.auxio.music.MusicViewModel
|
||||||
|
|
|
@ -6,7 +6,11 @@ import androidx.lifecycle.LiveData
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.ViewModelProvider
|
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.R
|
||||||
import org.oxycblt.auxio.music.models.Album
|
import org.oxycblt.auxio.music.models.Album
|
||||||
import org.oxycblt.auxio.music.models.Artist
|
import org.oxycblt.auxio.music.models.Artist
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
<androidx.fragment.app.FragmentContainerView
|
<androidx.fragment.app.FragmentContainerView
|
||||||
android:id="@+id/loading_fragment"
|
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_width="match_parent"
|
||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
app:layout_constraintBottom_toTopOf="@+id/tabs"
|
app:layout_constraintBottom_toTopOf="@+id/tabs"
|
||||||
|
|
Loading…
Reference in a new issue