Skip to content

Instantly share code, notes, and snippets.

View frogermcs's full-sized avatar
🤓
Did you do good today?

Mirosław Stanek frogermcs

🤓
Did you do good today?
View GitHub Profile
@frogermcs
frogermcs / onResume.java
Created March 22, 2016 18:25
AndroidDevMetrics tracing
@Override
protected void onResume() {
super.onResume();
countToMillion();
callHeavyMethod();
}
private void countToMillion() {
int number = 0;
for (int i = 0; i < 1000000; i++) {
@frogermcs
frogermcs / build.gradle
Created March 22, 2016 18:50
AndroidDevMetrics 0.4
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.frogermcs.androiddevmetrics:androiddevmetrics-plugin:0.4'
}
}
@frogermcs
frogermcs / application.java
Created March 22, 2016 18:50
AndroidDevMetrics 0.4
public class ExampleApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
//Use it only in debug builds
if (BuildConfig.DEBUG) {
AndroidDevMetrics.initWith(this);
}
}
@frogermcs
frogermcs / HeavyExternalLibrary.java
Created April 16, 2016 21:33
Async injection with Dagger 2 and RxJava
@Provides
@Singleton
HeavyExternalLibrary provideHeavyExternalLibrary() {
HeavyExternalLibrary heavyExternalLibrary = new HeavyExternalLibrary();
heavyExternalLibrary.init(); //This method takes about 500ms
return heavyExternalLibrary;
}
@frogermcs
frogermcs / ObservableHeavyExternalLibrary.java
Created April 16, 2016 21:34
Async injection with Dagger 2 and RxJava
@Singleton
@Provides
Observable<HeavyExternalLibrary> provideHeavyExternalLibraryObservable(final Lazy<HeavyExternalLibrary> heavyExternalLibraryLazy) {
return Observable.create(new Observable.OnSubscribe<HeavyExternalLibrary>() {
@Override
public void call(Subscriber<? super HeavyExternalLibrary> subscriber) {
subscriber.onNext(heavyExternalLibraryLazy.get());
}
}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread());
}
@frogermcs
frogermcs / SplashActivity.java
Created April 16, 2016 21:35
Async injection with Dagger 2 and RxJava
public class SplashActivity {
@Inject
Observable<HeavyExternalLibrary> heavyExternalLibraryObservable;
//This will be injected asynchronously
HeavyExternalLibrary heavyExternalLibrary;
@Override
protected void onCreate(Bundle savedInstanceState) {
@frogermcs
frogermcs / HeavyExternalLibrary.java
Created April 16, 2016 21:35
Async injection with Dagger 2 and RxJava
@Provides
HeavyExternalLibrary provideHeavyExternalLibrary() {
HeavyExternalLibrary heavyExternalLibrary = new HeavyExternalLibrary();
heavyExternalLibrary.init(); //This method takes about 500ms
return heavyExternalLibrary;
}
@frogermcs
frogermcs / HeavyExternalLibraryObservable.java
Last active August 8, 2016 04:28
Async injection with Dagger 2 and RxJava
@Singleton
@Provides
Observable<HeavyExternalLibrary> provideHeavyExternalLibraryObservable(final Provider<HeavyExternalLibrary> heavyExternalLibraryProvider) {
return Observable.create(new Observable.OnSubscribe<HeavyExternalLibrary>() {
@Override
public void call(Subscriber<? super HeavyExternalLibrary> subscriber) {
subscriber.onNext(heavyExternalLibraryProvider.get());
}
}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread());
}
@frogermcs
frogermcs / heavyExternalLibraryObservable.java
Created April 16, 2016 21:36
Async injection with Dagger 2 and RxJava
heavyExternalLibraryObservable.subscribe(new SimpleObserver<HeavyExternalLibrary>() {
@Override
public void onNext(HeavyExternalLibrary heavyExternalLibrary) {
//New instance of HeavyExternalLibrary
}
});
@frogermcs
frogermcs / SplashActivity.java
Created April 16, 2016 21:37
Async injection with Dagger 2 and RxJava
public class SplashActivity extends BaseActivity {
@Inject
SplashActivityPresenter presenter;
@Inject
AnalyticsManager analyticsManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);