summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jeff Sharkey <jsharkey@android.com> 2018-07-09 16:37:41 -0600
committer Jeff Sharkey <jsharkey@android.com> 2018-07-10 15:12:05 -0600
commit94785ef3654c4b0d02c3ff401a5339ba16b1ca2e (patch)
tree787f99a3e16f81c3c91184fd39d24bb0e784e13f
parent00a12bf0e6cd8fc6a31ce4e35687b1425407f631 (diff)
More movement towards public APIs.
Starts using new FileUtils and ContentProviderClient public APIs as part of getting DocumentsUI building against public API. Some mechanical refactoring using "sed". Test: builds Bug: 110959821 Change-Id: I79918ac938f71903685c5a778763d5e3cc20098c
-rw-r--r--src/com/android/documentsui/CreateDirectoryFragment.java2
-rw-r--r--src/com/android/documentsui/DirectoryLoader.java12
-rw-r--r--src/com/android/documentsui/DirectoryResult.java4
-rw-r--r--src/com/android/documentsui/RecentsLoader.java16
-rw-r--r--src/com/android/documentsui/RefreshTask.java2
-rw-r--r--src/com/android/documentsui/ThumbnailLoader.java2
-rw-r--r--src/com/android/documentsui/archives/ArchivesProvider.java4
-rw-r--r--src/com/android/documentsui/archives/Proxy.java6
-rw-r--r--src/com/android/documentsui/archives/ReadableArchive.java8
-rw-r--r--src/com/android/documentsui/archives/WriteableArchive.java10
-rw-r--r--src/com/android/documentsui/base/DebugFlags.java6
-rw-r--r--src/com/android/documentsui/base/DocumentInfo.java6
-rw-r--r--src/com/android/documentsui/base/Features.java6
-rw-r--r--src/com/android/documentsui/base/Shared.java16
-rw-r--r--src/com/android/documentsui/base/SharedMinimal.java5
-rw-r--r--src/com/android/documentsui/dirlist/DirectoryFragment.java4
-rw-r--r--src/com/android/documentsui/dirlist/ScaleHelper.java3
-rw-r--r--src/com/android/documentsui/files/ActionHandler.java4
-rw-r--r--src/com/android/documentsui/files/QuickViewIntentBuilder.java3
-rw-r--r--src/com/android/documentsui/picker/LastAccessedProvider.java12
-rw-r--r--src/com/android/documentsui/picker/LastAccessedStorage.java4
-rw-r--r--src/com/android/documentsui/roots/ProvidersCache.java6
-rw-r--r--src/com/android/documentsui/selection/BandSelectionHelper.java4
-rw-r--r--src/com/android/documentsui/selection/GridModel.java3
-rw-r--r--src/com/android/documentsui/services/CopyJob.java25
-rw-r--r--src/com/android/documentsui/services/Job.java2
-rw-r--r--src/com/android/documentsui/sidebar/EjectRootTask.java2
-rw-r--r--tests/common/com/android/documentsui/DocumentsProviderHelper.java11
-rw-r--r--tests/common/com/android/documentsui/StubProvider.java6
-rw-r--r--tests/unit/com/android/documentsui/archives/ResourcesProvider.java4
-rw-r--r--tests/unit/com/android/documentsui/services/FileOperationServiceTest.java63
31 files changed, 138 insertions, 123 deletions
diff --git a/src/com/android/documentsui/CreateDirectoryFragment.java b/src/com/android/documentsui/CreateDirectoryFragment.java
index 173950542..771c6461d 100644
--- a/src/com/android/documentsui/CreateDirectoryFragment.java
+++ b/src/com/android/documentsui/CreateDirectoryFragment.java
@@ -147,7 +147,7 @@ public class CreateDirectoryFragment extends DialogFragment {
Log.w(TAG, "Failed to create directory", e);
return null;
} finally {
- ContentProviderClient.releaseQuietly(client);
+ ContentProviderClient.closeQuietly(client);
}
}
diff --git a/src/com/android/documentsui/DirectoryLoader.java b/src/com/android/documentsui/DirectoryLoader.java
index 55900e69b..eb3ab32c3 100644
--- a/src/com/android/documentsui/DirectoryLoader.java
+++ b/src/com/android/documentsui/DirectoryLoader.java
@@ -46,7 +46,7 @@ import com.android.documentsui.roots.RootCursorWrapper;
import com.android.documentsui.selection.ContentLock;
import com.android.documentsui.sorting.SortModel;
-import libcore.io.IoUtils;
+import android.os.FileUtils;
public class DirectoryLoader extends AsyncTaskLoader<DirectoryResult> {
@@ -158,7 +158,7 @@ public class DirectoryLoader extends AsyncTaskLoader<DirectoryResult> {
mSignal = null;
}
// TODO: Remove this call.
- ContentProviderClient.releaseQuietly(client);
+ ContentProviderClient.closeQuietly(client);
}
return result;
@@ -178,7 +178,7 @@ public class DirectoryLoader extends AsyncTaskLoader<DirectoryResult> {
@Override
public void deliverResult(DirectoryResult result) {
if (isReset()) {
- IoUtils.closeQuietly(result);
+ FileUtils.closeQuietly(result);
return;
}
DirectoryResult oldResult = mResult;
@@ -189,7 +189,7 @@ public class DirectoryLoader extends AsyncTaskLoader<DirectoryResult> {
}
if (oldResult != null && oldResult != result) {
- IoUtils.closeQuietly(oldResult);
+ FileUtils.closeQuietly(oldResult);
}
}
@@ -210,7 +210,7 @@ public class DirectoryLoader extends AsyncTaskLoader<DirectoryResult> {
@Override
public void onCanceled(DirectoryResult result) {
- IoUtils.closeQuietly(result);
+ FileUtils.closeQuietly(result);
}
@Override
@@ -220,7 +220,7 @@ public class DirectoryLoader extends AsyncTaskLoader<DirectoryResult> {
// Ensure the loader is stopped
onStopLoading();
- IoUtils.closeQuietly(mResult);
+ FileUtils.closeQuietly(mResult);
mResult = null;
getContext().getContentResolver().unregisterContentObserver(mObserver);
diff --git a/src/com/android/documentsui/DirectoryResult.java b/src/com/android/documentsui/DirectoryResult.java
index 58746e5d3..a4068de3c 100644
--- a/src/com/android/documentsui/DirectoryResult.java
+++ b/src/com/android/documentsui/DirectoryResult.java
@@ -23,7 +23,7 @@ import android.database.Cursor;
import com.android.documentsui.archives.ArchivesProvider;
import com.android.documentsui.base.DocumentInfo;
-import libcore.io.IoUtils;
+import android.os.FileUtils;
public class DirectoryResult implements AutoCloseable {
@@ -34,7 +34,7 @@ public class DirectoryResult implements AutoCloseable {
@Override
public void close() {
- IoUtils.closeQuietly(cursor);
+ FileUtils.closeQuietly(cursor);
if (client != null && doc.isInArchive()) {
ArchivesProvider.releaseArchive(client, doc.derivedUri);
}
diff --git a/src/com/android/documentsui/RecentsLoader.java b/src/com/android/documentsui/RecentsLoader.java
index 28b5fa589..42be08294 100644
--- a/src/com/android/documentsui/RecentsLoader.java
+++ b/src/com/android/documentsui/RecentsLoader.java
@@ -45,7 +45,7 @@ import androidx.annotation.GuardedBy;
import com.google.common.util.concurrent.AbstractFuture;
-import libcore.io.IoUtils;
+import android.os.FileUtils;
import java.io.Closeable;
import java.io.IOException;
@@ -247,7 +247,7 @@ public class RecentsLoader extends AsyncTaskLoader<DirectoryResult> {
@Override
public void deliverResult(DirectoryResult result) {
if (isReset()) {
- IoUtils.closeQuietly(result);
+ FileUtils.closeQuietly(result);
return;
}
DirectoryResult oldResult = mResult;
@@ -258,7 +258,7 @@ public class RecentsLoader extends AsyncTaskLoader<DirectoryResult> {
}
if (oldResult != null && oldResult != result) {
- IoUtils.closeQuietly(oldResult);
+ FileUtils.closeQuietly(oldResult);
}
}
@@ -279,7 +279,7 @@ public class RecentsLoader extends AsyncTaskLoader<DirectoryResult> {
@Override
public void onCanceled(DirectoryResult result) {
- IoUtils.closeQuietly(result);
+ FileUtils.closeQuietly(result);
}
@Override
@@ -291,11 +291,11 @@ public class RecentsLoader extends AsyncTaskLoader<DirectoryResult> {
synchronized (mTasks) {
for (RecentsTask task : mTasks.values()) {
- IoUtils.closeQuietly(task);
+ FileUtils.closeQuietly(task);
}
}
- IoUtils.closeQuietly(mResult);
+ FileUtils.closeQuietly(mResult);
mResult = null;
}
@@ -365,7 +365,7 @@ public class RecentsLoader extends AsyncTaskLoader<DirectoryResult> {
} catch (Exception e) {
Log.w(TAG, "Failed to acquire content resolver for authority: " + authority);
} finally {
- ContentProviderClient.releaseQuietly(client);
+ ContentProviderClient.closeQuietly(client);
}
set(mCursors);
@@ -383,7 +383,7 @@ public class RecentsLoader extends AsyncTaskLoader<DirectoryResult> {
}
for (Cursor cursor : mCursors) {
- IoUtils.closeQuietly(cursor);
+ FileUtils.closeQuietly(cursor);
}
mIsClosed = true;
diff --git a/src/com/android/documentsui/RefreshTask.java b/src/com/android/documentsui/RefreshTask.java
index b7483956f..85903eaeb 100644
--- a/src/com/android/documentsui/RefreshTask.java
+++ b/src/com/android/documentsui/RefreshTask.java
@@ -97,7 +97,7 @@ public class RefreshTask extends TimeoutTask<Void, Boolean> {
} catch (Exception e) {
Log.w(TAG, "Failed to refresh", e);
} finally {
- ContentProviderClient.releaseQuietly(client);
+ ContentProviderClient.closeQuietly(client);
}
return refreshSupported;
}
diff --git a/src/com/android/documentsui/ThumbnailLoader.java b/src/com/android/documentsui/ThumbnailLoader.java
index f5a93aa63..4a50bf1e4 100644
--- a/src/com/android/documentsui/ThumbnailLoader.java
+++ b/src/com/android/documentsui/ThumbnailLoader.java
@@ -114,7 +114,7 @@ public final class ThumbnailLoader extends AsyncTask<Uri, Void, Bitmap> implemen
Log.w(TAG, "Failed to load thumbnail for " + mUri + ": " + e);
}
} finally {
- ContentProviderClient.releaseQuietly(client);
+ ContentProviderClient.closeQuietly(client);
}
return result;
}
diff --git a/src/com/android/documentsui/archives/ArchivesProvider.java b/src/com/android/documentsui/archives/ArchivesProvider.java
index de76da484..138ad543a 100644
--- a/src/com/android/documentsui/archives/ArchivesProvider.java
+++ b/src/com/android/documentsui/archives/ArchivesProvider.java
@@ -37,7 +37,7 @@ import android.util.Log;
import com.android.documentsui.R;
import androidx.annotation.GuardedBy;
-import libcore.io.IoUtils;
+import android.os.FileUtils;
import java.io.FileNotFoundException;
import java.io.IOException;
@@ -170,7 +170,7 @@ public class ArchivesProvider extends DocumentsProvider {
Log.e(TAG, "An error occurred retrieving the metadata.", e);
return null;
} finally {
- IoUtils.closeQuietly(stream);
+ FileUtils.closeQuietly(stream);
}
}
diff --git a/src/com/android/documentsui/archives/Proxy.java b/src/com/android/documentsui/archives/Proxy.java
index a2336b72b..d72d3098a 100644
--- a/src/com/android/documentsui/archives/Proxy.java
+++ b/src/com/android/documentsui/archives/Proxy.java
@@ -26,7 +26,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.util.zip.ZipEntry;
-import libcore.io.IoUtils;
+import android.os.FileUtils;
/**
* Provides a backend for a seekable file descriptors for files in archives.
@@ -85,11 +85,11 @@ public class Proxy extends ProxyFileDescriptorCallback {
}
@Override public void onRelease() {
- IoUtils.closeQuietly(mInputStream);
+ FileUtils.closeQuietly(mInputStream);
}
private void recreateInputStream() throws IOException {
- IoUtils.closeQuietly(mInputStream);
+ FileUtils.closeQuietly(mInputStream);
mInputStream = mFile.getInputStream(mEntry);
mOffset = 0;
}
diff --git a/src/com/android/documentsui/archives/ReadableArchive.java b/src/com/android/documentsui/archives/ReadableArchive.java
index 77fb07e31..e38aaa5a7 100644
--- a/src/com/android/documentsui/archives/ReadableArchive.java
+++ b/src/com/android/documentsui/archives/ReadableArchive.java
@@ -34,7 +34,7 @@ import android.util.jar.StrictJarFile;
import androidx.annotation.GuardedBy;
import androidx.core.util.Preconditions;
-import libcore.io.IoUtils;
+import android.os.FileUtils;
import java.io.File;
import java.io.FileDescriptor;
@@ -214,8 +214,8 @@ public class ReadableArchive extends Archive {
} catch (Exception e) {
// Since the method takes ownership of the passed descriptor, close it
// on exception.
- IoUtils.closeQuietly(descriptor);
- IoUtils.closeQuietly(fd);
+ FileUtils.closeQuietly(descriptor);
+ FileUtils.closeQuietly(fd);
throw e;
}
}
@@ -286,7 +286,7 @@ public class ReadableArchive extends Archive {
// Ignore the exception, as reading the EXIF may legally fail.
Log.e(TAG, "Failed to obtain thumbnail from EXIF.", e);
} finally {
- IoUtils.closeQuietly(inputStream);
+ FileUtils.closeQuietly(inputStream);
}
return new AssetFileDescriptor(
diff --git a/src/com/android/documentsui/archives/WriteableArchive.java b/src/com/android/documentsui/archives/WriteableArchive.java
index 72a8249aa..0c3e44e6f 100644
--- a/src/com/android/documentsui/archives/WriteableArchive.java
+++ b/src/com/android/documentsui/archives/WriteableArchive.java
@@ -29,7 +29,7 @@ import android.util.Log;
import androidx.annotation.GuardedBy;
import androidx.annotation.VisibleForTesting;
-import libcore.io.IoUtils;
+import android.os.FileUtils;
import java.io.FileDescriptor;
import java.io.FileNotFoundException;
@@ -128,7 +128,7 @@ public class WriteableArchive extends Archive {
} catch (Exception e) {
// Since the method takes ownership of the passed descriptor, close it
// on exception.
- IoUtils.closeQuietly(descriptor);
+ FileUtils.closeQuietly(descriptor);
throw e;
}
}
@@ -270,8 +270,8 @@ public class WriteableArchive extends Archive {
}
});
} catch (RejectedExecutionException e) {
- IoUtils.closeQuietly(pipe[0]);
- IoUtils.closeQuietly(pipe[1]);
+ FileUtils.closeQuietly(pipe[0]);
+ FileUtils.closeQuietly(pipe[1]);
throw new IllegalStateException("Failed to initialize pipe.");
}
@@ -311,6 +311,6 @@ public class WriteableArchive extends Archive {
}
}
- IoUtils.closeQuietly(mOutputStream);
+ FileUtils.closeQuietly(mOutputStream);
}
};
diff --git a/src/com/android/documentsui/base/DebugFlags.java b/src/com/android/documentsui/base/DebugFlags.java
index 4c4b9bcab..7e0a70ebc 100644
--- a/src/com/android/documentsui/base/DebugFlags.java
+++ b/src/com/android/documentsui/base/DebugFlags.java
@@ -29,17 +29,17 @@ public final class DebugFlags {
private DebugFlags() {}
- private static String mQvPackage;
+ private static String sQvPackage;
private static boolean sDocumentDetailsEnabled;
private static int sForcedPageOffset = -1;
private static int sForcedPageLimit = -1;
public static void setQuickViewer(@Nullable String qvPackage) {
- mQvPackage = qvPackage;
+ sQvPackage = qvPackage;
}
public static @Nullable String getQuickViewer() {
- return mQvPackage;
+ return sQvPackage;
}
public static void setDocumentDetailsEnabled(boolean enabled) {
diff --git a/src/com/android/documentsui/base/DocumentInfo.java b/src/com/android/documentsui/base/DocumentInfo.java
index 51bdd7514..5b1388dfb 100644
--- a/src/com/android/documentsui/base/DocumentInfo.java
+++ b/src/com/android/documentsui/base/DocumentInfo.java
@@ -31,7 +31,7 @@ import com.android.documentsui.DocumentsApplication;
import com.android.documentsui.archives.ArchivesProvider;
import com.android.documentsui.roots.RootCursorWrapper;
-import libcore.io.IoUtils;
+import android.os.FileUtils;
import java.io.DataInputStream;
import java.io.DataOutputStream;
@@ -198,8 +198,8 @@ public class DocumentInfo implements Durable, Parcelable {
} catch (Throwable t) {
throw asFileNotFoundException(t);
} finally {
- IoUtils.closeQuietly(cursor);
- ContentProviderClient.releaseQuietly(client);
+ FileUtils.closeQuietly(cursor);
+ ContentProviderClient.closeQuietly(client);
}
}
diff --git a/src/com/android/documentsui/base/Features.java b/src/com/android/documentsui/base/Features.java
index aacb34d00..7a43791ac 100644
--- a/src/com/android/documentsui/base/Features.java
+++ b/src/com/android/documentsui/base/Features.java
@@ -15,7 +15,6 @@
*/
package com.android.documentsui.base;
-import androidx.annotation.BoolRes;
import android.content.Context;
import android.content.res.Resources;
import android.os.UserManager;
@@ -23,6 +22,8 @@ import android.util.SparseBooleanArray;
import com.android.documentsui.R;
+import androidx.annotation.BoolRes;
+
/**
* Provides access to feature flags configured in config.xml.
*/
@@ -61,7 +62,8 @@ public interface Features {
void forceFeature(@BoolRes int feature, boolean enabled);
public static Features create(Context context) {
- return new RuntimeFeatures(context.getResources(), UserManager.get(context));
+ return new RuntimeFeatures(context.getResources(),
+ context.getSystemService(UserManager.class));
}
final class RuntimeFeatures implements Features {
diff --git a/src/com/android/documentsui/base/Shared.java b/src/com/android/documentsui/base/Shared.java
index cf5e8df6a..67bc4b7f8 100644
--- a/src/com/android/documentsui/base/Shared.java
+++ b/src/com/android/documentsui/base/Shared.java
@@ -18,7 +18,6 @@ package com.android.documentsui.base;
import static com.android.documentsui.base.SharedMinimal.TAG;
-import androidx.annotation.PluralsRes;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.ContentResolver;
@@ -28,7 +27,6 @@ import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Configuration;
import android.net.Uri;
-import android.os.Build;
import android.os.Looper;
import android.provider.DocumentsContract;
import android.provider.Settings;
@@ -48,6 +46,8 @@ import java.util.List;
import javax.annotation.Nullable;
+import androidx.annotation.PluralsRes;
+
/** @hide */
public final class Shared {
@@ -184,6 +184,14 @@ public final class Shared {
return sCollator.compare(lhs, rhs);
}
+ private static boolean isSystemApp(ApplicationInfo ai) {
+ return (ai.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
+ }
+
+ private static boolean isUpdatedSystemApp(ApplicationInfo ai) {
+ return (ai.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0;
+ }
+
/**
* Returns the calling package, possibly overridden by EXTRA_PACKAGE_NAME.
* @param activity
@@ -195,9 +203,9 @@ public final class Shared {
try {
ApplicationInfo info =
activity.getPackageManager().getApplicationInfo(callingPackage, 0);
- if (info.isSystemApp() || info.isUpdatedSystemApp()) {
+ if (isSystemApp(info) || isUpdatedSystemApp(info)) {
final String extra = activity.getIntent().getStringExtra(
- DocumentsContract.EXTRA_PACKAGE_NAME);
+ Intent.EXTRA_PACKAGE_NAME);
if (extra != null && !TextUtils.isEmpty(extra)) {
callingPackage = extra;
}
diff --git a/src/com/android/documentsui/base/SharedMinimal.java b/src/com/android/documentsui/base/SharedMinimal.java
index 69bc333cd..00b7d03d6 100644
--- a/src/com/android/documentsui/base/SharedMinimal.java
+++ b/src/com/android/documentsui/base/SharedMinimal.java
@@ -22,7 +22,6 @@ import static com.android.documentsui.ScopedAccessMetrics.SCOPED_DIRECTORY_ACCES
import static com.android.documentsui.ScopedAccessMetrics.SCOPED_DIRECTORY_ACCESS_INVALID_DIRECTORY;
import static com.android.documentsui.ScopedAccessMetrics.logInvalidScopedAccessRequest;
-import androidx.annotation.Nullable;
import android.content.ContentProviderClient;
import android.content.Context;
import android.net.Uri;
@@ -40,6 +39,8 @@ import java.io.File;
import java.io.IOException;
import java.util.List;
+import androidx.annotation.Nullable;
+
/**
* Contains the minimum number of utilities (contants, helpers, etc...) that can be used by both the
* main package and the minimal APK that's used by Android TV (and other devices).
@@ -51,7 +52,7 @@ public final class SharedMinimal {
public static final String TAG = "Documents";
- public static final boolean DEBUG = Build.IS_DEBUGGABLE;
+ public static final boolean DEBUG = !"user".equals(Build.TYPE);
public static final boolean VERBOSE = DEBUG && Log.isLoggable(TAG, Log.VERBOSE);
/**
diff --git a/src/com/android/documentsui/dirlist/DirectoryFragment.java b/src/com/android/documentsui/dirlist/DirectoryFragment.java
index 54d8e43be..d9c7b624f 100644
--- a/src/com/android/documentsui/dirlist/DirectoryFragment.java
+++ b/src/com/android/documentsui/dirlist/DirectoryFragment.java
@@ -391,7 +391,7 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On
// on RecyclerView items.
mKeyListener = handlers.createKeyHandler();
- if (Build.IS_DEBUGGABLE) {
+ if (DEBUG) {
new ScaleHelper(this.getContext(), mInjector.features, this::scaleLayout)
.attach(mRecView);
}
@@ -565,7 +565,7 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On
* @param mode The new view mode.
*/
private void scaleLayout(float scale) {
- assert Build.IS_DEBUGGABLE;
+ assert DEBUG;
if (VERBOSE) Log.v(
TAG, "Handling scale event: " + scale + ", existing scale: " + mLiveScale);
diff --git a/src/com/android/documentsui/dirlist/ScaleHelper.java b/src/com/android/documentsui/dirlist/ScaleHelper.java
index 9e9e31efe..3f048f5a7 100644
--- a/src/com/android/documentsui/dirlist/ScaleHelper.java
+++ b/src/com/android/documentsui/dirlist/ScaleHelper.java
@@ -16,6 +16,7 @@
package com.android.documentsui.dirlist;
import static androidx.core.util.Preconditions.checkState;
+import static com.android.documentsui.base.SharedMinimal.DEBUG;
import static com.android.documentsui.base.SharedMinimal.VERBOSE;
import android.content.Context;
@@ -61,7 +62,7 @@ final class ScaleHelper {
}
void attach(RecyclerView view) {
- checkState(Build.IS_DEBUGGABLE);
+ checkState(DEBUG);
checkState(mScaleDetector == null);
mScaleDetector = new ScaleGestureDetector(
diff --git a/src/com/android/documentsui/files/ActionHandler.java b/src/com/android/documentsui/files/ActionHandler.java
index 775ec549e..21926561f 100644
--- a/src/com/android/documentsui/files/ActionHandler.java
+++ b/src/com/android/documentsui/files/ActionHandler.java
@@ -179,7 +179,7 @@ public class ActionHandler<T extends Activity & Addons> extends AbstractActionHa
Log.w(TAG, "Failed to rename file", e);
return null;
} finally {
- ContentProviderClient.releaseQuietly(client);
+ ContentProviderClient.closeQuietly(client);
}
}
@@ -695,7 +695,7 @@ public class ActionHandler<T extends Activity & Addons> extends AbstractActionHa
intent.putExtra(
Shared.EXTRA_SHOW_DEBUG,
mFeatures.isDebugSupportEnabled() &&
- (Build.IS_DEBUGGABLE || DebugFlags.getDocumentDetailsEnabled()));
+ (DEBUG || DebugFlags.getDocumentDetailsEnabled()));
// The "root document" (top level folder in a root) don't usually have a
// human friendly display name. That's because we've never shown the root
diff --git a/src/com/android/documentsui/files/QuickViewIntentBuilder.java b/src/com/android/documentsui/files/QuickViewIntentBuilder.java
index edd5afdca..7a7245d10 100644
--- a/src/com/android/documentsui/files/QuickViewIntentBuilder.java
+++ b/src/com/android/documentsui/files/QuickViewIntentBuilder.java
@@ -154,12 +154,11 @@ public final class QuickViewIntentBuilder {
// Allow users of debug devices to override default quick viewer
// for the purposes of testing.
- if (Build.IS_DEBUGGABLE) {
+ if (DEBUG) {
String quickViewer = DebugFlags.getQuickViewer();
if (quickViewer != null) {
return quickViewer;
}
- return android.os.SystemProperties.get("debug.quick_viewer", resValue);
}
return resValue;
}
diff --git a/src/com/android/documentsui/picker/LastAccessedProvider.java b/src/com/android/documentsui/picker/LastAccessedProvider.java
index 20a9d0aab..fbe1df630 100644
--- a/src/com/android/documentsui/picker/LastAccessedProvider.java
+++ b/src/com/android/documentsui/picker/LastAccessedProvider.java
@@ -31,17 +31,15 @@ import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.net.Uri;
import android.os.Bundle;
+import android.os.FileUtils;
import android.provider.DocumentsContract;
import android.util.Log;
import com.android.documentsui.base.DocumentStack;
import com.android.documentsui.base.DurableUtils;
-import libcore.io.IoUtils;
-
-import com.google.android.collect.Sets;
-
import java.io.IOException;
+import java.util.HashSet;
import java.util.Set;
import java.util.function.Predicate;
@@ -190,7 +188,7 @@ public class LastAccessedProvider extends ContentProvider {
if (METHOD_PURGE.equals(method)) {
// Purge references to unknown authorities
final Intent intent = new Intent(DocumentsContract.PROVIDER_INTERFACE);
- final Set<String> knownAuth = Sets.newHashSet();
+ final Set<String> knownAuth = new HashSet<>();
for (ResolveInfo info : getContext()
.getPackageManager().queryIntentContentProviders(intent, 0)) {
knownAuth.add(info.providerInfo.authority);
@@ -210,7 +208,7 @@ public class LastAccessedProvider extends ContentProvider {
// Purge references to authorities in given package
final Intent intent = new Intent(DocumentsContract.PROVIDER_INTERFACE);
intent.setPackage(arg);
- final Set<String> packageAuth = Sets.newHashSet();
+ final Set<String> packageAuth = new HashSet<>();
for (ResolveInfo info : getContext()
.getPackageManager().queryIntentContentProviders(intent, 0)) {
packageAuth.add(info.providerInfo.authority);
@@ -259,7 +257,7 @@ public class LastAccessedProvider extends ContentProvider {
}
}
} finally {
- IoUtils.closeQuietly(cursor);
+ FileUtils.closeQuietly(cursor);
}
}
}
diff --git a/src/com/android/documentsui/picker/LastAccessedStorage.java b/src/com/android/documentsui/picker/LastAccessedStorage.java
index ed38de094..b2b849b2e 100644
--- a/src/com/android/documentsui/picker/LastAccessedStorage.java
+++ b/src/com/android/documentsui/picker/LastAccessedStorage.java
@@ -28,7 +28,7 @@ import com.android.documentsui.base.Shared;
import com.android.documentsui.base.State;
import com.android.documentsui.roots.ProvidersAccess;
-import libcore.io.IoUtils;
+import android.os.FileUtils;
import java.io.IOException;
@@ -69,7 +69,7 @@ public interface LastAccessedStorage {
} catch (IOException e) {
Log.w(TAG, "Failed to resume: ", e);
} finally {
- IoUtils.closeQuietly(cursor);
+ FileUtils.closeQuietly(cursor);
}
return null;
diff --git a/src/com/android/documentsui/roots/ProvidersCache.java b/src/com/android/documentsui/roots/ProvidersCache.java
index 19c56e598..6fcc8d887 100644
--- a/src/com/android/documentsui/roots/ProvidersCache.java
+++ b/src/com/android/documentsui/roots/ProvidersCache.java
@@ -51,7 +51,7 @@ import androidx.annotation.GuardedBy;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
-import libcore.io.IoUtils;
+import android.os.FileUtils;
import java.util.ArrayList;
import java.util.Collection;
@@ -311,8 +311,8 @@ public class ProvidersCache implements ProvidersAccess {
// if forceRefresh is false.
return roots;
} finally {
- IoUtils.closeQuietly(cursor);
- ContentProviderClient.releaseQuietly(client);
+ FileUtils.closeQuietly(cursor);
+ ContentProviderClient.closeQuietly(client);
}
// Cache these freshly parsed roots over in the long-lived system
diff --git a/src/com/android/documentsui/selection/BandSelectionHelper.java b/src/com/android/documentsui/selection/BandSelectionHelper.java
index 86726083f..f5aa4665d 100644
--- a/src/com/android/documentsui/selection/BandSelectionHelper.java
+++ b/src/com/android/documentsui/selection/BandSelectionHelper.java
@@ -18,6 +18,7 @@ package com.android.documentsui.selection;
import static androidx.core.util.Preconditions.checkArgument;
import static androidx.core.util.Preconditions.checkState;
+import static com.android.documentsui.base.SharedMinimal.DEBUG;
import android.graphics.Point;
import android.graphics.Rect;
@@ -52,7 +53,6 @@ import java.util.Set;
*/
public class BandSelectionHelper implements OnItemTouchListener {
- static final boolean DEBUG = false;
static final String TAG = "BandController";
private final BandHost mHost;
@@ -170,7 +170,7 @@ public class BandSelectionHelper implements OnItemTouchListener {
@VisibleForTesting
boolean isActive() {
boolean active = mModel != null;
- if (Build.IS_DEBUGGABLE && active) {
+ if (DEBUG && active) {
mLock.checkLocked();
}
return active;
diff --git a/src/com/android/documentsui/selection/GridModel.java b/src/com/android/documentsui/selection/GridModel.java
index a0c80ddfe..feca271ab 100644
--- a/src/com/android/documentsui/selection/GridModel.java
+++ b/src/com/android/documentsui/selection/GridModel.java
@@ -17,6 +17,7 @@
package com.android.documentsui.selection;
import static androidx.core.util.Preconditions.checkArgument;
+import static com.android.documentsui.base.SharedMinimal.DEBUG;
import android.graphics.Point;
import android.graphics.Rect;
@@ -324,7 +325,7 @@ final class GridModel {
private void updateSelection(
int columnStartIndex, int columnEndIndex, int rowStartIndex, int rowEndIndex) {
- if (BandSelectionHelper.DEBUG) {
+ if (DEBUG) {
Log.d(BandSelectionHelper.TAG, String.format(
"updateSelection: %d, %d, %d, %d",
columnStartIndex, columnEndIndex, rowStartIndex, rowEndIndex));
diff --git a/src/com/android/documentsui/services/CopyJob.java b/src/com/android/documentsui/services/CopyJob.java
index 2953ea4c6..b05f53b6b 100644
--- a/src/com/android/documentsui/services/CopyJob.java
+++ b/src/com/android/documentsui/services/CopyJob.java
@@ -32,7 +32,6 @@ import static com.android.documentsui.services.FileOperationService.MESSAGE_FINI
import static com.android.documentsui.services.FileOperationService.MESSAGE_PROGRESS;
import static com.android.documentsui.services.FileOperationService.OPERATION_COPY;
-import androidx.annotation.StringRes;
import android.app.Notification;
import android.app.Notification.Builder;
import android.app.PendingIntent;
@@ -73,9 +72,6 @@ import com.android.documentsui.base.RootInfo;
import com.android.documentsui.clipping.UrisSupplier;
import com.android.documentsui.roots.ProvidersCache;
import com.android.documentsui.services.FileOperationService.OpType;
-import androidx.annotation.VisibleForTesting;
-
-import libcore.io.IoUtils;
import java.io.FileDescriptor;
import java.io.FileNotFoundException;
@@ -88,6 +84,9 @@ import java.util.concurrent.atomic.AtomicLong;
import java.util.function.Function;
import java.util.function.LongSupplier;
+import androidx.annotation.StringRes;
+import androidx.annotation.VisibleForTesting;
+
class CopyJob extends ResolvedResourcesJob {
private static final String TAG = "CopyJob";
@@ -474,7 +473,7 @@ class CopyJob extends ResolvedResourcesJob {
srcDir.derivedUri.toString(), destDir.derivedUri.toString()), e);
success = false;
} finally {
- IoUtils.closeQuietly(cursor);
+ FileUtils.closeQuietly(cursor);
}
if (!success) {
@@ -565,11 +564,11 @@ class CopyJob extends ResolvedResourcesJob {
try {
final Int64Ref last = new Int64Ref(0);
- FileUtils.copy(in, out, (long progress) -> {
+ FileUtils.copy(in, out, mSignal, Runnable::run, (long progress) -> {
final long delta = progress - last.value;
last.value = progress;
makeCopyProgress(delta);
- }, mSignal);
+ });
} catch (OperationCanceledException e) {
if (DEBUG) Log.d(TAG, "Canceled copy mid-copy of: " + src.derivedUri);
return;
@@ -587,7 +586,11 @@ class CopyJob extends ResolvedResourcesJob {
}
// Need to invoke IoUtils.close explicitly to avoid from ignoring errors at flush.
- IoUtils.close(dstFile.getFileDescriptor());
+ try {
+ Os.close(dstFile.getFileDescriptor());
+ } catch (ErrnoException e) {
+ throw new IOException(e);
+ }
srcFile.checkError();
} catch (IOException e) {
Metrics.logFileOperationFailure(
@@ -624,8 +627,8 @@ class CopyJob extends ResolvedResourcesJob {
}
// This also ensures the file descriptors are closed.
- IoUtils.closeQuietly(in);
- IoUtils.closeQuietly(out);
+ FileUtils.closeQuietly(in);
+ FileUtils.closeQuietly(out);
}
}
@@ -704,7 +707,7 @@ class CopyJob extends ResolvedResourcesJob {
throw new ResourceException(
"Failed to calculate size for %s due to an exception.", uri, e);
} finally {
- IoUtils.closeQuietly(cursor);
+ FileUtils.closeQuietly(cursor);
}
return result;
diff --git a/src/com/android/documentsui/services/Job.java b/src/com/android/documentsui/services/Job.java
index c05bbbd87..e50d50b0a 100644
--- a/src/com/android/documentsui/services/Job.java
+++ b/src/com/android/documentsui/services/Job.java
@@ -209,7 +209,7 @@ abstract public class Job implements Runnable {
final void cleanup() {
for (ContentProviderClient client : mClients.values()) {
- ContentProviderClient.releaseQuietly(client);
+ ContentProviderClient.closeQuietly(client);
}
}
diff --git a/src/com/android/documentsui/sidebar/EjectRootTask.java b/src/com/android/documentsui/sidebar/EjectRootTask.java
index 2baeb4c9e..f7aecf5b5 100644
--- a/src/com/android/documentsui/sidebar/EjectRootTask.java
+++ b/src/com/android/documentsui/sidebar/EjectRootTask.java
@@ -64,7 +64,7 @@ public final class EjectRootTask extends AsyncTask<Void, Void, Boolean> {
} catch (Exception e) {
Log.w(TAG, "Binder call failed.", e);
} finally {
- ContentProviderClient.releaseQuietly(client);
+ ContentProviderClient.closeQuietly(client);
}
return false;
diff --git a/tests/common/com/android/documentsui/DocumentsProviderHelper.java b/tests/common/com/android/documentsui/DocumentsProviderHelper.java
index b4ad5eb78..123f4fb15 100644
--- a/tests/common/com/android/documentsui/DocumentsProviderHelper.java
+++ b/tests/common/com/android/documentsui/DocumentsProviderHelper.java
@@ -44,13 +44,14 @@ import com.android.documentsui.base.DocumentInfo;
import com.android.documentsui.base.RootInfo;
import com.android.documentsui.roots.RootCursorWrapper;
-import com.google.android.collect.Lists;
-
-import libcore.io.IoUtils;
+import android.os.FileUtils;
import libcore.io.Streams;
+import com.google.common.collect.Lists;
+
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
/**
@@ -81,7 +82,7 @@ public class DocumentsProviderHelper {
} catch (Exception e) {
throw new RuntimeException("Can't load root for id=" + documentId , e);
} finally {
- IoUtils.closeQuietly(cursor);
+ FileUtils.closeQuietly(cursor);
}
}
@@ -352,7 +353,7 @@ public class DocumentsProviderHelper {
} catch (Exception e) {
throw new RuntimeException("Can't load rootInfo list", e);
} finally {
- IoUtils.closeQuietly(cursor);
+ FileUtils.closeQuietly(cursor);
}
return list;
}
diff --git a/tests/common/com/android/documentsui/StubProvider.java b/tests/common/com/android/documentsui/StubProvider.java
index 25a595f4a..4366d318a 100644
--- a/tests/common/com/android/documentsui/StubProvider.java
+++ b/tests/common/com/android/documentsui/StubProvider.java
@@ -35,7 +35,7 @@ import androidx.annotation.VisibleForTesting;
import android.text.TextUtils;
import android.util.Log;
-import libcore.io.IoUtils;
+import android.os.FileUtils;
import java.io.File;
import java.io.FileNotFoundException;
@@ -472,8 +472,8 @@ public class StubProvider extends DocumentsProvider {
Log.e(TAG, "Error on close", e);
closePipeWithErrorSilently(readPipe, e.getMessage());
} finally {
- IoUtils.closeQuietly(inputStream);
- IoUtils.closeQuietly(outputStream);
+ FileUtils.closeQuietly(inputStream);
+ FileUtils.closeQuietly(outputStream);
Log.d(TAG, "Closing write stream on file " + document.documentId);
notifyParentChanged(document.parentId);
getContext().getContentResolver().notifyChange(
diff --git a/tests/unit/com/android/documentsui/archives/ResourcesProvider.java b/tests/unit/com/android/documentsui/archives/ResourcesProvider.java
index b9ddb92b1..165532ff7 100644
--- a/tests/unit/com/android/documentsui/archives/ResourcesProvider.java
+++ b/tests/unit/com/android/documentsui/archives/ResourcesProvider.java
@@ -32,7 +32,7 @@ import android.provider.DocumentsContract.Root;
import android.provider.DocumentsProvider;
import android.webkit.MimeTypeMap;
-import libcore.io.IoUtils;
+import android.os.FileUtils;
import java.io.File;
import java.io.FileNotFoundException;
@@ -152,7 +152,7 @@ public class ResourcesProvider extends DocumentsProvider {
row.add(Document.COLUMN_SIZE, fd.getLength());
}
finally {
- IoUtils.closeQuietly(fd);
+ FileUtils.closeQuietly(fd);
}
}
}
diff --git a/tests/unit/com/android/documentsui/services/FileOperationServiceTest.java b/tests/unit/com/android/documentsui/services/FileOperationServiceTest.java
index fbaafe803..ae51dd174 100644
--- a/tests/unit/com/android/documentsui/services/FileOperationServiceTest.java
+++ b/tests/unit/com/android/documentsui/services/FileOperationServiceTest.java
@@ -20,7 +20,6 @@ import static com.android.documentsui.services.FileOperationService.OPERATION_CO
import static com.android.documentsui.services.FileOperationService.OPERATION_DELETE;
import static com.android.documentsui.services.FileOperations.createBaseIntent;
import static com.android.documentsui.services.FileOperations.createJobId;
-import static com.google.android.collect.Lists.newArrayList;
import static org.junit.Assert.fail;
import android.content.Context;
@@ -44,6 +43,7 @@ import com.android.documentsui.testing.TestHandler;
import com.android.documentsui.testing.TestScheduledExecutorService;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
@MediumTest
@@ -121,8 +121,8 @@ public class FileOperationServiceTest extends ServiceTestCase<FileOperationServi
}
public void testRunsCopyJobs() throws Exception {
- startService(createCopyIntent(newArrayList(ALPHA_DOC), BETA_DOC));
- startService(createCopyIntent(newArrayList(GAMMA_DOC), DELTA_DOC));
+ startService(createCopyIntent(Arrays.asList(ALPHA_DOC), BETA_DOC));
+ startService(createCopyIntent(Arrays.asList(GAMMA_DOC), DELTA_DOC));
mExecutor.runAll();
assertAllCopyJobsStarted();
@@ -135,7 +135,7 @@ public class FileOperationServiceTest extends ServiceTestCase<FileOperationServi
} catch(IllegalArgumentException expected) {
// We're sending a naughty empty list that should result in an IllegalArgumentException.
}
- startService(createCopyIntent(newArrayList(GAMMA_DOC), DELTA_DOC));
+ startService(createCopyIntent(Arrays.asList(GAMMA_DOC), DELTA_DOC));
assertJobsCreated(1);
@@ -144,8 +144,8 @@ public class FileOperationServiceTest extends ServiceTestCase<FileOperationServi
}
public void testRunsCopyJobs_AfterFailure() throws Exception {
- startService(createCopyIntent(newArrayList(ALPHA_DOC), BETA_DOC));
- startService(createCopyIntent(newArrayList(GAMMA_DOC), DELTA_DOC));
+ startService(createCopyIntent(Arrays.asList(ALPHA_DOC), BETA_DOC));
+ startService(createCopyIntent(Arrays.asList(GAMMA_DOC), DELTA_DOC));
mCopyJobs.get(0).fail(ALPHA_DOC);
@@ -154,30 +154,30 @@ public class FileOperationServiceTest extends ServiceTestCase<FileOperationServi
}
public void testRunsCopyJobs_notRunsDeleteJobs() throws Exception {
- startService(createCopyIntent(newArrayList(ALPHA_DOC), BETA_DOC));
- startService(createDeleteIntent(newArrayList(GAMMA_DOC)));
+ startService(createCopyIntent(Arrays.asList(ALPHA_DOC), BETA_DOC));
+ startService(createDeleteIntent(Arrays.asList(GAMMA_DOC)));
mExecutor.runAll();
assertNoDeleteJobsStarted();
}
public void testRunsDeleteJobs() throws Exception {
- startService(createDeleteIntent(newArrayList(ALPHA_DOC)));
+ startService(createDeleteIntent(Arrays.asList(ALPHA_DOC)));
mDeletionExecutor.runAll();
assertAllDeleteJobsStarted();
}
public void testRunsDeleteJobs_NotRunsCopyJobs() throws Exception {
- startService(createCopyIntent(newArrayList(ALPHA_DOC), BETA_DOC));
- startService(createDeleteIntent(newArrayList(GAMMA_DOC)));
+ startService(createCopyIntent(Arrays.asList(ALPHA_DOC), BETA_DOC));
+ startService(createDeleteIntent(Arrays.asList(GAMMA_DOC)));
mDeletionExecutor.runAll();
assertNoCopyJobsStarted();
}
public void testUpdatesNotification() throws Exception {
- startService(createCopyIntent(newArrayList(ALPHA_DOC), BETA_DOC));
+ startService(createCopyIntent(Arrays.asList(ALPHA_DOC), BETA_DOC));
mExecutor.runAll();
// Assert monitoring continues until job is done
@@ -187,7 +187,7 @@ public class FileOperationServiceTest extends ServiceTestCase<FileOperationServi
}
public void testStopsUpdatingNotificationAfterFinished() throws Exception {
- startService(createCopyIntent(newArrayList(ALPHA_DOC), BETA_DOC));
+ startService(createCopyIntent(Arrays.asList(ALPHA_DOC), BETA_DOC));
mExecutor.runAll();
mHandler.dispatchNextMessage();
@@ -200,13 +200,13 @@ public class FileOperationServiceTest extends ServiceTestCase<FileOperationServi
}
public void testHoldsWakeLockWhileWorking() throws Exception {
- startService(createCopyIntent(newArrayList(ALPHA_DOC), BETA_DOC));
+ startService(createCopyIntent(Arrays.asList(ALPHA_DOC), BETA_DOC));
assertTrue(mService.holdsWakeLock());
}
public void testReleasesWakeLock_AfterSuccess() throws Exception {
- startService(createCopyIntent(newArrayList(ALPHA_DOC), BETA_DOC));
+ startService(createCopyIntent(Arrays.asList(ALPHA_DOC), BETA_DOC));
assertTrue(mService.holdsWakeLock());
mExecutor.runAll();
@@ -214,7 +214,7 @@ public class FileOperationServiceTest extends ServiceTestCase<FileOperationServi
}
public void testReleasesWakeLock_AfterFailure() throws Exception {
- startService(createCopyIntent(newArrayList(ALPHA_DOC), BETA_DOC));
+ startService(createCopyIntent(Arrays.asList(ALPHA_DOC), BETA_DOC));
assertTrue(mService.holdsWakeLock());
mExecutor.runAll();
@@ -222,7 +222,7 @@ public class FileOperationServiceTest extends ServiceTestCase<FileOperationServi
}
public void testShutdownStopsExecutor_AfterSuccess() throws Exception {
- startService(createCopyIntent(newArrayList(ALPHA_DOC), BETA_DOC));
+ startService(createCopyIntent(Arrays.asList(ALPHA_DOC), BETA_DOC));
mExecutor.assertAlive();
mDeletionExecutor.assertAlive();
@@ -234,8 +234,8 @@ public class FileOperationServiceTest extends ServiceTestCase<FileOperationServi
}
public void testShutdownStopsExecutor_AfterMixedFailures() throws Exception {
- startService(createCopyIntent(newArrayList(ALPHA_DOC), BETA_DOC));
- startService(createCopyIntent(newArrayList(GAMMA_DOC), DELTA_DOC));
+ startService(createCopyIntent(Arrays.asList(ALPHA_DOC), BETA_DOC));
+ startService(createCopyIntent(Arrays.asList(GAMMA_DOC), DELTA_DOC));
mCopyJobs.get(0).fail(ALPHA_DOC);
@@ -246,8 +246,8 @@ public class FileOperationServiceTest extends ServiceTestCase<FileOperationServi
}
public void testShutdownStopsExecutor_AfterTotalFailure() throws Exception {
- startService(createCopyIntent(newArrayList(ALPHA_DOC), BETA_DOC));
- startService(createCopyIntent(newArrayList(GAMMA_DOC), DELTA_DOC));
+ startService(createCopyIntent(Arrays.asList(ALPHA_DOC), BETA_DOC));
+ startService(createCopyIntent(Arrays.asList(GAMMA_DOC), DELTA_DOC));
mCopyJobs.get(0).fail(ALPHA_DOC);
mCopyJobs.get(1).fail(GAMMA_DOC);
@@ -259,8 +259,8 @@ public class FileOperationServiceTest extends ServiceTestCase<FileOperationServi
}
public void testRunsInForeground_MultipleJobs() throws Exception {
- startService(createCopyIntent(newArrayList(ALPHA_DOC), BETA_DOC));
- startService(createCopyIntent(newArrayList(GAMMA_DOC), DELTA_DOC));
+ startService(createCopyIntent(Arrays.asList(ALPHA_DOC), BETA_DOC));
+ startService(createCopyIntent(Arrays.asList(GAMMA_DOC), DELTA_DOC));
mExecutor.run(0);
mForegroundManager.assertInForeground();
@@ -270,8 +270,8 @@ public class FileOperationServiceTest extends ServiceTestCase<FileOperationServi
}
public void testFinishesInBackground_MultipleJobs() throws Exception {
- startService(createCopyIntent(newArrayList(ALPHA_DOC), BETA_DOC));
- startService(createCopyIntent(newArrayList(GAMMA_DOC), DELTA_DOC));
+ startService(createCopyIntent(Arrays.asList(ALPHA_DOC), BETA_DOC));
+ startService(createCopyIntent(Arrays.asList(GAMMA_DOC), DELTA_DOC));
mExecutor.run(0);
mForegroundManager.assertInForeground();
@@ -285,8 +285,8 @@ public class FileOperationServiceTest extends ServiceTestCase<FileOperationServi
}
public void testAllNotificationsDismissedAfterShutdown() throws Exception {
- startService(createCopyIntent(newArrayList(ALPHA_DOC), BETA_DOC));
- startService(createCopyIntent(newArrayList(GAMMA_DOC), DELTA_DOC));
+ startService(createCopyIntent(Arrays.asList(ALPHA_DOC), BETA_DOC));
+ startService(createCopyIntent(Arrays.asList(GAMMA_DOC), DELTA_DOC));
mExecutor.runAll();
@@ -295,8 +295,8 @@ public class FileOperationServiceTest extends ServiceTestCase<FileOperationServi
}
public void testNotificationUpdateAfterForegroundJobSwitch() throws Exception {
- startService(createCopyIntent(newArrayList(ALPHA_DOC), BETA_DOC));
- startService(createCopyIntent(newArrayList(GAMMA_DOC), DELTA_DOC));
+ startService(createCopyIntent(Arrays.asList(ALPHA_DOC), BETA_DOC));
+ startService(createCopyIntent(Arrays.asList(GAMMA_DOC), DELTA_DOC));
Job job1 = mCopyJobs.get(0);
Job job2 = mCopyJobs.get(1);
@@ -320,7 +320,7 @@ public class FileOperationServiceTest extends ServiceTestCase<FileOperationServi
mTestNotificationManager.assertNumberOfNotifications(0);
}
- private Intent createCopyIntent(ArrayList<DocumentInfo> files, DocumentInfo dest)
+ private Intent createCopyIntent(List<DocumentInfo> files, DocumentInfo dest)
throws Exception {
DocumentStack stack = new DocumentStack();
stack.push(dest);
@@ -336,7 +336,7 @@ public class FileOperationServiceTest extends ServiceTestCase<FileOperationServi
return createBaseIntent(getContext(), createJobId(), operation);
}
- private Intent createDeleteIntent(ArrayList<DocumentInfo> files) {
+ private Intent createDeleteIntent(List<DocumentInfo> files) {
DocumentStack stack = new DocumentStack();
List<Uri> uris = new ArrayList<>(files.size());
@@ -388,6 +388,7 @@ public class FileOperationServiceTest extends ServiceTestCase<FileOperationServi
void assertJobsCreated(int expected) {
assertEquals(expected, mCopyJobs.size() + mDeleteJobs.size());
}
+
private static DocumentInfo createDoc(Uri destination) {
DocumentInfo destDoc = new DocumentInfo();
destDoc.derivedUri = destination;