12f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyarpackage android.databinding.testapp; 22f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar 32f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyarimport android.databinding.OnRebindCallback; 42f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyarimport android.databinding.ViewDataBinding; 52f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyarimport android.databinding.testapp.databinding.InvalidateAllLayoutBinding; 62f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyarimport android.databinding.testapp.vo.NotBindableVo; 72f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar 82f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyarimport java.util.concurrent.Semaphore; 92f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyarimport java.util.concurrent.TimeUnit; 102f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar 112f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyarpublic class InvalidateAllTest extends BaseDataBinderTest<InvalidateAllLayoutBinding> { 122f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar 132f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar public InvalidateAllTest() { 142f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar super(InvalidateAllLayoutBinding.class); 152f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar } 162f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar 172f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar public void testRefreshViaInvalidateAll() throws InterruptedException { 182f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar final Semaphore semaphore = new Semaphore(1); 192f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar semaphore.acquire(); 2024bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar final NotBindableVo vo = new NotBindableVo("foo"); 212f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar initBinder(new Runnable() { 222f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar @Override 232f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar public void run() { 2424bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar mBinder.setVo(vo); 252f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar mBinder.addOnRebindCallback(new OnRebindCallback() { 262f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar @Override 272f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar public void onBound(ViewDataBinding binding) { 282f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar super.onBound(binding); 292f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar semaphore.release(); 302f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar } 312f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar }); 322f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar } 332f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar }); 342f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar assertTrue(semaphore.tryAcquire(2, TimeUnit.SECONDS)); 352f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar 362f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar assertEquals("foo", mBinder.textView.getText().toString()); 372f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar vo.setStringValue("bar"); 382f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar mBinder.invalidateAll(); 392f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar 402f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar assertTrue(semaphore.tryAcquire(2, TimeUnit.SECONDS)); 412f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar assertEquals("bar", mBinder.textView.getText().toString()); 422f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar 432f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar } 442f64c44e4fa296cf658ca986c095eab62f82a31dYigit Boyar} 45