(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.
| RecyclerViewInteraction.<Item>onRecyclerView(withId(R.id.recyclerview)) | |
| .withItems(items) | |
| .check(new ItemViewAssertion<Item>() { | |
| @Override | |
| public void check(Item item, View view, NoMatchingViewException e) { | |
| matches(hasDescendant(withText(item.getDisplayName()))) | |
| .check(view, e); | |
| } | |
| }); |
| import android.content.Context; | |
| import android.graphics.Canvas; | |
| import android.support.design.widget.TextInputLayout; | |
| import android.support.v4.view.ViewCompat; | |
| import android.util.AttributeSet; | |
| import android.view.View; | |
| import android.view.ViewGroup; | |
| import android.widget.EditText; | |
| public class CustomTextInputLayout extends TextInputLayout { |
| String getJavaHome(String version) | |
| { | |
| def stdout = new ByteArrayOutputStream() | |
| exec { | |
| commandLine "/usr/libexec/java_home", "-v", version | |
| standardOutput = stdout; | |
| } | |
| return stdout.toString().trim() | |
| } |
(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.
| buildscript { | |
| repositories { | |
| mavenCentral() | |
| maven { | |
| url 'https://oss.sonatype.org/content/repositories/snapshots/' | |
| } | |
| } | |
| dependencies { | |
| classpath 'com.android.tools.build:gradle:0.9.+' | |
| classpath 'com.squareup.gradle:gradle-android-test-plugin:0.9.1-SNAPSHOT' |