(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
// Released under MIT license: http://www.opensource.org/licenses/mit-license.php | |
$('[placeholder]').focus(function() { | |
var input = $(this); | |
if (input.val() == input.attr('placeholder')) { | |
input.val(''); | |
input.removeClass('placeholder'); | |
} | |
}).blur(function() { | |
var input = $(this); |
/* | |
* Copyright 2013 Google Inc. | |
* | |
* Licensed under the Apache License, Version 2.0 (the "License"); | |
* you may not use this file except in compliance with the License. | |
* You may obtain a copy of the License at | |
* | |
* http://www.apache.org/licenses/LICENSE-2.0 | |
* | |
* Unless required by applicable law or agreed to in writing, software |
import android.util.SparseArray; | |
import android.widget.AbsListView; | |
/** | |
* Helper class for calculating relative scroll offsets in a ListView or GridView by tracking the | |
* position of child views. | |
*/ | |
public class ListViewScrollTracker { | |
private AbsListView mListView; | |
private SparseArray<Integer> mPositions; |
@Override | |
public void onBackPressed() { | |
if (!returnBackStackImmediate(getSupportFragmentManager())) { | |
super.onBackPressed(); | |
} | |
} | |
// HACK: propagate back button press to child fragments. | |
// This might not work properly when you have multiple fragments adding multiple children to the backstack. | |
// (in our case, only one child fragments adds fragments to the backstack, so we're fine with this) |
/* | |
* Copyright 2014 Mostafa Gazar | |
* | |
* Licensed under the Apache License, Version 2.0 (the "License"); | |
* you may not use this file except in compliance with the License. | |
* You may obtain a copy of the License at | |
* | |
* http://www.apache.org/licenses/LICENSE-2.0 | |
* | |
* Unless required by applicable law or agreed to in writing, software |
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
// "/en/sports_api/" + r + "/bets" | |
// "/en/sports_api/live/events?markets=none"; | |
// "/en/sports_api/live/event/" + t, | |
// "/en/sports_api/pre_match/competition/" + t + "/events" | |
// "/en/sports_api/pre_match/event/" + t, | |
// "/en/sports_api/pre_match/" + e.node + "/" + e.nodeid + "/events" : | |
// "/en/sports_api/pre_match/events" |
var min = 7427658739644928; // min int value that is 10 bytes long in base58 | |
var max = 9007199254740992; // max safe integer (exclusive), also 10 bytes | |
var alphabet = '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'; // base58 | |
var base = alphabet.length; | |
function encode(num) { | |
var mod, str = ''; | |
while (num >= base) { | |
mod = num % base; |
package com.vaughandroid.test.espresso.idlingresources; | |
import android.app.Activity; | |
import android.os.Handler; | |
import android.support.annotation.IdRes; | |
import android.support.annotation.NonNull; | |
import android.support.test.espresso.*; | |
import android.view.View; | |
import java.lang.ref.WeakReference; |
import android.app.Activity; | |
import android.content.Context; | |
import android.content.Intent; | |
import android.content.pm.ResolveInfo; | |
import android.content.res.AssetFileDescriptor; | |
import android.database.Cursor; | |
import android.graphics.Bitmap; | |
import android.graphics.BitmapFactory; | |
import android.graphics.Matrix; | |
import android.media.ExifInterface; |