Last active
September 9, 2018 10:13
-
-
Save mataku/bd83f548f45b077c0511b77d3bea601c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ... | |
implementation "android.arch.lifecycle:viewmodel:$versions.architectureComponents" | |
implementation "android.arch.lifecycle:extensions:$versions.architectureComponents" | |
// ... |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import android.arch.lifecycle.ViewModel | |
import com.mataku.scrobscrob.app.model.entity.Artist | |
import com.mataku.scrobscrob.app.model.entity.Album | |
class MusicContentViewModel : ViewModel() { | |
var artists = mutableListOf<Artist>() | |
var albums = mutableListOf<Album>() | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.mataku.scrobscrob.app.ui.fragment.artist | |
import android.arch.lifecycle.ViewModelProviders | |
import android.os.Bundle | |
import android.support.v4.app.Fragment | |
import android.view.LayoutInflater | |
import android.view.View | |
import android.view.ViewGroup | |
import com.mataku.scrobscrob.R | |
import com.mataku.scrobscrob.app.model.MusicContentViewModel | |
import com.mataku.scrobscrob.app.model.entity.Album | |
import com.mataku.scrobscrob.app.presenter.TopAlbumsPresenter | |
import com.mataku.scrobscrob.databinding.FragmentTopArtistsBinding | |
class TopAlbumsContentFragment : Fragment() { | |
private lateinit var binding: FragmentTopAlbumsBinding | |
private val presenter = TopAlbumsPresenter() | |
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { | |
val view = inflater.inflate(R.layout.fragment_top_albums, null, false) | |
view?.let { | |
binding = DataBindingUtil.bind(it)!! | |
setUp() | |
} | |
return view | |
} | |
override fun show(albums: List<Album>) { | |
viewmodel.albums.addAll(albums) | |
// データ渡して UI に反映 | |
} | |
private fun setUp() { | |
this.activity?.let { | |
val viewmodel = ViewModelProviders.of(it).get(MusicContentViewModel::class.java) | |
if (viewmodel.albums.isNotEmpty()) { | |
// データがあれば通信せずにそれを使って表示 | |
} else { | |
presenter.getTopAlbums() | |
} | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.mataku.scrobscrob.app.ui.fragment.artist | |
import android.arch.lifecycle.ViewModelProviders | |
import android.os.Bundle | |
import android.support.v4.app.Fragment | |
import android.view.LayoutInflater | |
import android.view.View | |
import android.view.ViewGroup | |
import com.mataku.scrobscrob.R | |
import com.mataku.scrobscrob.app.model.MusicContentViewModel | |
import com.mataku.scrobscrob.app.model.entity.Artist | |
import com.mataku.scrobscrob.app.presenter.TopArtistsPresenter | |
import com.mataku.scrobscrob.databinding.FragmentTopArtistsBinding | |
class TopArtistsContentFragment : Fragment() { | |
private lateinit var binding: FragmentTopArtistsBinding | |
private val presenter = TopArtistsPresenter() | |
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { | |
val view = inflater.inflate(R.layout.fragment_top_artists, null, false) | |
view?.let { | |
binding = DataBindingUtil.bind(it) | |
setUp() | |
} | |
return view | |
} | |
override fun show(artists: List<Artist>) { | |
viewmodel.artists.addAll(artists) | |
// データ渡して UI に反映 | |
} | |
private fun setUp() { | |
this.activity?.let { | |
val viewmodel = ViewModelProviders.of(it).get(MusicContentViewModel::class.java) | |
if (viewmodel.artists.isNotEmpty()) { | |
// データがあれば通信せずにそれを使って表示 | |
} else { | |
presenter.getTopArtists() | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment