Skip to content

Instantly share code, notes, and snippets.

View sebastienrouif's full-sized avatar

Sebastien ROUIF sebastienrouif

View GitHub Profile
@sebastienrouif
sebastienrouif / RxJavaShareOperator.kt
Created April 5, 2019 09:16
Usage of share operator with an observable. Relevant for any resource that is costly and should only "work" when at least one Observable is subscribed. eg.Location in Android
fun main() {
var counter = 0
var emitter: ObservableEmitter<Int>? = null
val subject = Observable.create<Int> {
println("emitter creation")
emitter = it
it.setCancellable {
counter = 0
println("cancelling emitter $it")
}
@sebastienrouif
sebastienrouif / BaseActivity.java
Created January 15, 2015 11:47
SyncAdapter status listener
private SyncStatusObserver mSyncStatusObserver = new SyncStatusObserver() {
@Override
public void onStatusChanged(int which) {
runOnUiThread(new Runnable() {
@Override
public void run() {
String accountName = AccountUtils.getActiveAccountName(BaseActivity.this);
if (TextUtils.isEmpty(accountName)) {
onRefreshingStateChanged(false);
mManualSyncRequest = false;
@sebastienrouif
sebastienrouif / LogUtils.java
Created January 14, 2015 11:28
logUtils from Google IO
public class LogUtils {
private static final String LOG_PREFIX = "myapp_";
private static final int LOG_PREFIX_LENGTH = LOG_PREFIX.length();
private static final int MAX_LOG_TAG_LENGTH = 23;
private LogUtils() {
}
public static String makeLogTag(String str) {
if (str.length() > MAX_LOG_TAG_LENGTH - LOG_PREFIX_LENGTH) {