This file contains hidden or 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
class SecondFragment: Fragment() { | |
private lateinit var viewModel: DemoViewModel | |
override fun onCreate(savedInstanceState: Bundle ? ) { | |
super.onCreate(savedInstanceState) | |
viewModel = ViewModelProviders.of(activity).get(DemoViewModel::class.java) | |
} | |
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup ? , savedInstanceState: Bundle ? ) : View ? { |
This file contains hidden or 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
class MainFragment: Fragment() { | |
private lateinitvar viewModel: DemoViewModel | |
var buttonListener: OnSecondFragmentButtonClickListener ? =null | |
override fun onCreate(savedInstanceState: Bundle ? ) { | |
super.onCreate(savedInstanceState) | |
viewModel = ViewModelProviders.of(activity).get(DemoViewModel::class.java) | |
} |
This file contains hidden or 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
class MainActivity: AppCompatActivity() { | |
override fun onCreate(savedInstanceState: Bundle ? ) { | |
super.onCreate(savedInstanceState) | |
setContentView(R.layout.activity_main) | |
val textViewNumbers = findViewById < TextView > (R.id.text_view_numbers) | |
val viewModel = ViewModelProviders.of(this).get(DemoViewModel::class.java) | |
viewModel.numbersLiveData.observe(this, object: Observer < List < Int >> { |
This file contains hidden or 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
class DemoViewModel: ViewModel() { | |
private val numbers = mutableListOf < Int > () | |
private val _numbersLiveDate = MutableLiveData < List < Int >> () | |
val numbersLiveData: LiveData < List < Int >> get() { | |
if (_numbersLiveDate.value == null) { | |
loadInitialData() | |
} | |
return _numbersLiveDate |
This file contains hidden or 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
override fun onStop() { | |
super.onStop() | |
dataSource.addItem() | |
} |
This file contains hidden or 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
class DemoDataSourceObserverTest { | |
@get: Rule | |
var rule: TestRule = InstantTaskExecutorRule() | |
@Mock lateinit var observer: Observer < List < Int >> @Mock lateinit | |
var lifeCycleOwner: LifecycleOwner | |
lateinit var lifeCycle: LifecycleRegistry | |
val dataSource = DemoDataSource() |
This file contains hidden or 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
class DemoDataSourceTest {@get: Rule | |
var rule: TestRule = InstantTaskExecutorRule() | |
@Test | |
fun shouldLoadData() { | |
val dataSource = DemoDataSource() | |
dataSource.loadNumbers() | |
assertEquals(listOf(1, 2, 3, 4), dataSource.numberLiveData.value) | |
} |
This file contains hidden or 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
@Test | |
fun shouldLoadData() { | |
val dataSource = DemoDataSource() | |
dataSource.loadNumbers() | |
assertEquals(listOf(1, 2, 3, 4), dataSource.numberLiveData.value) | |
} |
This file contains hidden or 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
val source1 = MutableLiveData<Int>() | |
val source2 = MutableLiveData<Int>() | |
val merger = MediatorLiveData<Int>() | |
merger.addSource(source1, { number -> merger.postValue(number) }) | |
merger.addSource(source2, { number -> merger.postValue(number) }) | |
merger.observe(this, object : Observer<Int> { | |
override fun onChanged(number: Int?) { | |
Log.i("Merger", number.toString()) |
This file contains hidden or 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
val sumLiveData = Transformations.switchMap(dataSource.numberLiveData, { | |
numbers - >MutableLiveData < Int > ().apply { | |
postValue(numbers.sum()) | |
} | |
}) | |
sumLiveData.observe(this, object: Observer < Int > { | |
override fun onChanged(sum: Int ? ) { | |
Log.i("Sum", sum.toString()) | |
} |
NewerOlder