Skip to content

Instantly share code, notes, and snippets.

View sliskiCode's full-sized avatar
:octocat:
Work, work

Piotr Ślesarew sliskiCode

:octocat:
Work, work
View GitHub Profile
@sliskiCode
sliskiCode / Response.java
Last active November 27, 2017 09:00
6 magic sugars that can make your Kotlin codebase happier #2
public abstract class Response {
private Response() {
}
// $FF: synthetic method
public Response(DefaultConstructorMarker $constructor_marker) {
this();
}
}
@sliskiCode
sliskiCode / Response.kt
Last active November 27, 2017 09:00
6 magic sugars that can make your Kotlin codebase happier #1
sealed class Response
data class Success(val body: String): Response()
data class Error(val code: Int, val message: String): Response()
object Timeout: Response()
@sliskiCode
sliskiCode / Main.kt
Last active March 24, 2018 13:14
RxJava Quiz - Use case: I want to delay emissions of server response until transition animation ends, but the request should happen right away when screens starts opening
import com.jakewharton.retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory
import io.reactivex.schedulers.Schedulers
import io.reactivex.subjects.ReplaySubject
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
val api: StackoverflowApi = Retrofit.Builder()
.baseUrl("https://api.stackexchange.com/2.2/")
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
@sliskiCode
sliskiCode / Person.java
Last active December 19, 2016 14:35
Living (Android) without Kotlin #11
import lombok.Data;
import lombok.experimental.ExtensionMethod;
@ExtensionMethod(Streams.class)
public class Foo {
void foo(List<Person> persons) {
persons.toStream()
.filter(it -> it.getAge() >= 21)
.filter(it -> it.getName().startsWith("P"))
.map(Person::getName)
@sliskiCode
sliskiCode / gradle.groovy
Created December 16, 2016 17:28
Living (Android) without Kotlin #10
dependencies {
classpath 'me.tatarka:gradle-retrolambda:3.4.0'
}
apply plugin: 'me.tatarka.retrolambda'
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
@sliskiCode
sliskiCode / Lambda.java
Created December 16, 2016 17:03
Living (Android) without Kotlin #9
button.setOnClickListener(view -> System.out.println("Hello World!"));
@sliskiCode
sliskiCode / Lambda.kt
Last active December 16, 2016 16:39
Living (Android) without Kotlin #8
button.setOnClickListener { println("Hello World") }
@sliskiCode
sliskiCode / Person.java
Last active December 19, 2016 14:30
Living (Android) without Kotlin #7
void foo(List<Person> persons) {
persons.stream()
.filter(it -> it.getAge() >= 21)
.filter(it -> it.getName().startsWith("P"))
.map(Person::getName)
.sorted()
.forEach(System.out::println);
}
class Person {
@sliskiCode
sliskiCode / Person.java
Last active December 19, 2016 14:30
Living (Android) without Kotlin #6
import lombok.Data;
import com.annimon.stream.Stream;
void foo(List<Person> persons) {
Stream.of(persons)
.filter(it -> it.getAge() >= 21)
.filter(it -> it.getName().startsWith("P"))
.map(Person::getName)
.sorted()
.forEach(System.out::println);
@sliskiCode
sliskiCode / gradle.groovy
Last active December 16, 2016 17:29
Living (Android) without Kotlin #5
defaultConfig {
jackOptions {
enabled true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}