package cucumber.example.android.cukeulator.test; import android.app.Activity; import android.util.Log; import android.view.View; public final class Utils { private static final MultiLock lock = new MultiLock(); public static class MultiLock { private int mLocks; public synchronized void acquire() throws InterruptedException { if (mLocks++ >= 0) { wait(); } } public synchronized void release() { if (--mLocks <= 0) { notifyAll(); } } } private Utils() { } public static void clickOnView(Activity activity, int id) { View view = activity.findViewById(id); if (view != null) clickOnView(activity, view); } public static void clickOnView(Activity activity, final View view) { activity.runOnUiThread(new Runnable() { @Override public void run() { view.callOnClick(); lock.release(); } }); try { lock.acquire(); } catch (InterruptedException e) { Log.e("cucumber-android", e.toString()); Thread.currentThread().interrupt(); } } }