diff --git a/services/CHANGELOG.md b/services/CHANGELOG.md index 90e6792cc..37419c9bf 100644 --- a/services/CHANGELOG.md +++ b/services/CHANGELOG.md @@ -6,6 +6,8 @@ **Bug Fixes** +* Reduce HostedFile log spam + **New Features** **Breaking Changes** diff --git a/services/storage/java/androidx/test/services/storage/file/HostedFile.java b/services/storage/java/androidx/test/services/storage/file/HostedFile.java index bb6c55b5d..f2c29f4e2 100644 --- a/services/storage/java/androidx/test/services/storage/file/HostedFile.java +++ b/services/storage/java/androidx/test/services/storage/file/HostedFile.java @@ -24,6 +24,7 @@ import android.util.Log; import androidx.test.services.storage.TestStorageConstants; import java.io.File; +import java.util.concurrent.atomic.AtomicBoolean; import androidx.annotation.RestrictTo; import androidx.annotation.RestrictTo.Scope; @@ -38,6 +39,8 @@ public final class HostedFile { private static final String TAG = "HostedFile"; + private static final AtomicBoolean LOGGED_OUTPUT_DIR = new AtomicBoolean(false); + /** An enum of the columns returned by the hosted file service. */ public enum HostedFileColumn { NAME("name", String.class, 3 /* Cursor.FIELD_TYPE_STRING since api 11 */, 0), @@ -146,34 +149,25 @@ public static Uri buildUri(FileHost host, String fileName) { public static File getInputRootDirectory(Context context) { // always use external storage dir for input - Log.i( - TAG, - "Choosing external storage as root dir for input: " - + Environment.getExternalStorageDirectory().getAbsolutePath()); return Environment.getExternalStorageDirectory(); } public static File getOutputRootDirectory(Context context) { UserManager userManager = (UserManager) context.getSystemService(Context.USER_SERVICE); if (VERSION.SDK_INT < 23) { - Log.i( - TAG, - "Running on API < 23; Choosing external storage as output root dir: " - + Environment.getExternalStorageDirectory().getAbsolutePath()); return Environment.getExternalStorageDirectory(); } else if (userManager.isSystemUser()) { - Log.i( - TAG, - "System user detected. Choosing external storage as output root dir: " - + Environment.getExternalStorageDirectory().getAbsolutePath()); return Environment.getExternalStorageDirectory(); } else { // using legacy external storage for output in automotive devices where tests run as // a secondary user has been flaky. So use local storage instead. - Log.i( - TAG, - "Secondary user detected. Choosing local storage as output root dir: " - + context.getCacheDir().getAbsolutePath()); + if (!LOGGED_OUTPUT_DIR.getAndSet(true)) { + // limit log spam by only logging choice once + Log.d( + TAG, + "Secondary user detected. Choosing local storage as output root dir: " + + context.getCacheDir().getAbsolutePath()); + } return context.getCacheDir(); } }