Skip to content

Instantly share code, notes, and snippets.

View feresr's full-sized avatar

Fernando Raviola feresr

View GitHub Profile
class MyBroadcastReceiver(val listener : MyBroadcastListener) extends BroadcastReceiver() {
override fun onReceive(p0: Context?, p1: Intent?) {
listener.onSomeEventHappened()
}
interface MyBroadcastListener {
fun onSomeEventHappened()
}
}
private fun <T> any(): T {
 Mockito.any<T>()
 return uninitialized()
 }
 private fun <T> uninitialized(): T = null as T
@feresr
feresr / org.mockito.plugins.MockMaker
Created August 13, 2017 23:32
Mockito enable mock final classes
content: mock-maker-inline
package com.example.gonzalo_mov.congreso;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
@feresr
feresr / rxRelayAwesome3.java
Last active February 3, 2017 14:16
rxRelayAwesome
public class JokesStore extends RxStore<JokeRequest, JokeResponse> {
private Observable<JokeResponse> buildObservable(JokeRequest event) {
return endpoints.getJoke(event.jokeNumber)
.subscribeOn().onBackPressureDrop()
.doOnNext(joke -> storage.save(joke))
.onErrorReturn() //create a joke response, set isSuccessful to false)
.observeOn();
}
@feresr
feresr / rxRelayAwesome2.java
Last active February 3, 2017 13:31
rxRelayAwesome
public Constructor() {
observable = endpoints.getJoke().doOnNext(joke -> storage.save(joke)).publish();
}
public void execute() {
observable.connect();
}
public Subscription subscribe(Subscriber<Joke> subscriber) { } //subscribe
public final void unsubscribe(Subscription) { } //unsubscribe
@feresr
feresr / rxRelayAwesome0.java
Last active February 5, 2017 23:24
RxRelayAwesome
public void execute() {
//doesn't actually execute anything just yet... just creates the observable
observable = endpoints.getJoke().doOnNext(joke -> storage.save(joke));
}
public Subscription subscribe(Subscriber<Joke> subscriber) {
return observable.subscribe(subscriber);
}
public final void unsubscribe(Subscription subscription) { } //unsubscribe
@feresr
feresr / rxRelayAwesome1.java
Last active February 3, 2017 05:07
RxRelays are awesome 1
public abstract class RxStore<Input, Output> {
private BehaviorRelay<Output> relay = BehaviorRelay.create(defaultValue());
public final Subscription register(Subscriber<Output> subscriber) {
return relay.subscribe(subscriber);
}
public final void execute(Input event) {
buildObservable(event).subscribe(relay);
}
@feresr
feresr / UsingRxStorage.java
Last active February 1, 2017 21:21
using rx storage
public class JokesPresenter extends BasePresenter<JokesView> {
private JokesStore store;
private Subscription subscription;
@Inject
public JokesPresenter(JokesStore jokesStore) { this.store = jokesStore; }
@Override
public void onCreate() {
@feresr
feresr / JokesStore.java
Last active February 1, 2017 21:22
RxDataStore implementation
public class JokesStore extends RxStore<JokeRequest, JokeResponse> {
private JokesEndpoint endpoints;
@Inject
public JokesStore(JokesEndpoint endpoints) {
this.endpoints = endpoints;
}
@Override