Loading tests/common/com/android/documentsui/DocumentsProviderHelper.java +1 −0 Original line number Diff line number Diff line Loading @@ -141,6 +141,7 @@ public class DocumentsProviderHelper { try (AutoCloseOutputStream out = new AutoCloseOutputStream(file)) { out.write(contents, 0, contents.length); } mClient.call("waitForWrite", null, null); } public byte[] readDocument(Uri documentUri) throws RemoteException, IOException { Loading tests/common/com/android/documentsui/StubProvider.java +56 −39 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.CountDownLatch; public class StubProvider extends DocumentsProvider { Loading Loading @@ -428,9 +429,7 @@ public class StubProvider extends DocumentsProvider { final ParcelFileDescriptor readPipe = pipe[0]; final ParcelFileDescriptor writePipe = pipe[1]; new Thread() { @Override public void run() { postToMainThread(() -> { InputStream inputStream = null; OutputStream outputStream = null; try { Loading Loading @@ -469,8 +468,7 @@ public class StubProvider extends DocumentsProvider { DocumentsContract.buildDocumentUri(mAuthority, document.documentId), null, false); } } }.start(); }); return writePipe; } Loading Loading @@ -509,6 +507,9 @@ public class StubProvider extends DocumentsProvider { case "setLoadingDuration": mLoadingDuration = extras.getLong(DocumentsContract.EXTRA_LOADING); return null; case "waitForWrite": waitForWrite(); return null; } return null; Loading Loading @@ -553,6 +554,22 @@ public class StubProvider extends DocumentsProvider { return out; } private void waitForWrite() { try { CountDownLatch latch = new CountDownLatch(1); postToMainThread(latch::countDown); latch.await(); Log.d(TAG, "All writing is done."); } catch (InterruptedException e) { // should never happen throw new RuntimeException(e); } } private void postToMainThread(Runnable r) { new Handler(Looper.getMainLooper()).post(r); } public String createDocument(String parentId, String mimeType, String displayName, int flags, List<String> streamTypes) throws FileNotFoundException { Loading Loading
tests/common/com/android/documentsui/DocumentsProviderHelper.java +1 −0 Original line number Diff line number Diff line Loading @@ -141,6 +141,7 @@ public class DocumentsProviderHelper { try (AutoCloseOutputStream out = new AutoCloseOutputStream(file)) { out.write(contents, 0, contents.length); } mClient.call("waitForWrite", null, null); } public byte[] readDocument(Uri documentUri) throws RemoteException, IOException { Loading
tests/common/com/android/documentsui/StubProvider.java +56 −39 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.CountDownLatch; public class StubProvider extends DocumentsProvider { Loading Loading @@ -428,9 +429,7 @@ public class StubProvider extends DocumentsProvider { final ParcelFileDescriptor readPipe = pipe[0]; final ParcelFileDescriptor writePipe = pipe[1]; new Thread() { @Override public void run() { postToMainThread(() -> { InputStream inputStream = null; OutputStream outputStream = null; try { Loading Loading @@ -469,8 +468,7 @@ public class StubProvider extends DocumentsProvider { DocumentsContract.buildDocumentUri(mAuthority, document.documentId), null, false); } } }.start(); }); return writePipe; } Loading Loading @@ -509,6 +507,9 @@ public class StubProvider extends DocumentsProvider { case "setLoadingDuration": mLoadingDuration = extras.getLong(DocumentsContract.EXTRA_LOADING); return null; case "waitForWrite": waitForWrite(); return null; } return null; Loading Loading @@ -553,6 +554,22 @@ public class StubProvider extends DocumentsProvider { return out; } private void waitForWrite() { try { CountDownLatch latch = new CountDownLatch(1); postToMainThread(latch::countDown); latch.await(); Log.d(TAG, "All writing is done."); } catch (InterruptedException e) { // should never happen throw new RuntimeException(e); } } private void postToMainThread(Runnable r) { new Handler(Looper.getMainLooper()).post(r); } public String createDocument(String parentId, String mimeType, String displayName, int flags, List<String> streamTypes) throws FileNotFoundException { Loading