Skip to content

Instantly share code, notes, and snippets.

View cdmunoz's full-sized avatar

Carlos Daniel cdmunoz

View GitHub Profile
public class MyApp extends MultiDexApplication {
private static final String TAG = MyApp.class.getName();
@Override
public void onCreate() {
super.onCreate();
AppLifecycleObserver appLifecycleObserver = new AppLifecycleObserver();
ProcessLifecycleOwner.get().getLifecycle().addObserver(appLifecycleObserver);
package hakerrank
import java.io.*
import java.math.*
import java.security.*
import java.text.*
import java.util.*
import java.util.concurrent.*
import java.util.function.*
import java.util.regex.*
class AuctionsCreationViewModel : ViewModel(), CoroutineScope {
private var auction: MutableLiveData<Auction> = MutableLiveData()
private var auctionCreationRepository = AuctionCreationRepository()
private var onClickSaveTrigger = SingleLiveEvent<Unit>()
private val job = Job()
override val coroutineContext: CoroutineContext
get() = job + Dispatchers.Main
class OneTimeObserver<T>(private val handler: (T) -> Unit) : Observer<T>, LifecycleOwner {
private val lifecycle = LifecycleRegistry(this)
init {
lifecycle.handleLifecycleEvent(Lifecycle.Event.ON_RESUME)
}
override fun getLifecycle(): Lifecycle = lifecycle
override fun onChanged(t: T) {
fun <T> LiveData<T>.observeOnce(onChangeHandler: (T) -> Unit) {
val observer = OneTimeObserver(handler = onChangeHandler)
observe(observer, observer)
}
@RunWith(JUnit4::class)
class AuctionCreationViewModelTest {
@get:Rule
val instantTaskExecutorRule = InstantTaskExecutorRule()
lateinit var auctionsCreationViewModel: AuctionsCreationViewModel
lateinit var auctionCreationRepository: AuctionCreationRepository
val auction = Auction()
@Test
fun saveAuction() {
auction.apply {
id = 100L
title = "auction to save 1"
status = Auction.Status.COMPLETE
}
runBlocking {
auctionsCreationViewModel.saveAuction(auction)
}
@cdmunoz
cdmunoz / TimeInWords.kt
Created May 7, 2019 03:13
Hacker Rank's TimeInWords in Kotlin
package hakerrank
import java.io.*
import java.math.*
import java.security.*
import java.text.*
import java.util.*
import java.util.concurrent.*
import java.util.function.*
import java.util.regex.*
@cdmunoz
cdmunoz / MissingNumbers.kt
Last active May 11, 2019 14:40
Solution in Kotlin for Hackerrank's Missing Numbers problem:https://www.hackerrank.com/challenges/missing-numbers/problem
package hakerrank
import java.io.*
import java.math.*
import java.security.*
import java.text.*
import java.util.*
import java.util.concurrent.*
import java.util.function.*
import java.util.regex.*
@cdmunoz
cdmunoz / FindTheMedian.kt
Created May 28, 2019 01:41
Hackerrank's find the median excercise in Kotlin https://www.hackerrank.com/challenges/find-the-median
fun findMedian(arr: Array<Int>): Int {
val size = arr.size
arr.sort()
return arr[(size / 2)]
}