Skip to content

Instantly share code, notes, and snippets.

@cdsap
cdsap / WorkManager.kt
Created January 7, 2019 03:09
WorkManager.kt
PeriodicWorkRequest.Builder(SyncWorker::class.java, 60, TimeUnit.MINUTES)
.setConstraints(Constraints.Builder()
.setRequiresCharging(false)
.setRequiredNetworkType(NetworkType.UNMETERED)
.setRequiresStorageNotLow(true)
.build())
@cdsap
cdsap / Table.csv
Last active January 5, 2019 04:51
Table
Client/Android Server/GAE
Network Retrofit Retrofit
DB SqlLite/Room Datastore/Objetify
Jobs JobScheduler Jobs GAE
@cdsap
cdsap / SpecificBusinessLogic.kt
Created January 2, 2019 08:27
SpecificBusinessLogic.kt
override fun get(): List<PairSymbol> {
val list = pairRepository.getPairs().filter {
it.primarySymbol != "BCH"
}
return if (list.isEmpty()) {
sync()
} else {
pairRepository.getPairs()
}
}
@cdsap
cdsap / Endpoint.kt
Created January 1, 2019 11:49
CloudEndpoint
@ApiMethod(name = "syncTrades",
httpMethod = ApiMethod.HttpMethod.GET,
path = "syncTrades/")
fun sync() = syncService.sync()
@cdsap
cdsap / SyncRepositoryImpl.kt
Created December 31, 2018 08:47
SyncRepositoryImpl
class SyncRepositoryImpl<out T : LocalSource<E>, out R : RemoteSource<Q>, Q, E>(
private val db: T,
private val api: R,
private val mapper: Mapper<Q, E>
) : SyncRepository {
override fun sync() {
api.sync().forEach {
db.save(mapper.map(it))
}
}
@cdsap
cdsap / GetPairs.kt
Created December 31, 2018 08:18
GetPairs
interface GetPairs {
fun get(): List<PairSymbol>
fun sync(): List<PairSymbol>
}
@cdsap
cdsap / pairRepository.kt
Created December 31, 2018 08:16
PairRepotory
class GetPairsImpl(private val pairRepository: PairsRepository) : GetPairs {
override fun get(): List<PairSymbol> {
val list = pairRepository.getPairs()
return if (list.isEmpty()) {
sync()
} else {
pairRepository.getPairs()
}
}
@cdsap
cdsap / bash
Created December 23, 2018 09:58
Emulator Datastore
gcloud components install cloud-datastore-emulator
gcloud beta emulators datastore start
@cdsap
cdsap / build.gradle.kts
Created September 13, 2018 10:03
Spek + Kts + Jacoc
val jacocoTestResultTaskName = "jacocoJunit5TestReport"
val junitPlatformTest: JavaExec by tasks
jacoco {
toolVersion = "0.8.2"
applyTo(junitPlatformTest)
}
task<JacocoReport>(jacocoTestResultTaskName) {
group = LifecycleBasePlugin.VERIFICATION_GROUP
description = "Generates code coverage report for the ${junitPlatformTest.name} task."
@cdsap
cdsap / console.log
Created May 14, 2018 15:33
ConsoleLog
:app:testDebugUnitTest 12.957s
:app:compileDebugKotlin 1.669s
:app:mergeDebugResources 1.390s
:app:compileDebugUnitTestKotlin 1.055s
:app:compileDebugJavaWithJavac 0.504s
:app:processDebugResources 0.452s
:app:clean 0.168s
:app:preDebugBuild 0.063s
:app:processDebugManifest 0.053s
:app:javaPreCompileDebugUnitTest 0.016s