Fix and reduce sdk of Content Provider to 24

Test: unit tests, presubmit
Bug: 228263600
Change-Id: I776032394928d7a207b267d4a1401f535c1aa689
diff --git a/util_apps/ContentProvider/main/Android.bp b/util_apps/ContentProvider/main/Android.bp
index 18657f8..34a82a4 100644
--- a/util_apps/ContentProvider/main/Android.bp
+++ b/util_apps/ContentProvider/main/Android.bp
@@ -29,12 +29,10 @@
     defaults: ["tradefed_errorprone_defaults"],
 
     srcs: ["java/**/*.java"],
-    static_libs: [
-        "androidx.test.runner",
-    ],
 
     manifest: "java/android/tradefed/contentprovider/AndroidManifest.xml",
-    sdk_version: "30",
+    // It's important to retain SDK support at 24 for backward compatibility
+    sdk_version: "24",
     min_sdk_version: "24",
 
     test_suites: ["general-tests"],
diff --git a/util_apps/ContentProvider/main/java/android/tradefed/contentprovider/AndroidManifest.xml b/util_apps/ContentProvider/main/java/android/tradefed/contentprovider/AndroidManifest.xml
index 15cb3fa..e0fa13f 100644
--- a/util_apps/ContentProvider/main/java/android/tradefed/contentprovider/AndroidManifest.xml
+++ b/util_apps/ContentProvider/main/java/android/tradefed/contentprovider/AndroidManifest.xml
@@ -21,6 +21,9 @@
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
 
+    <uses-sdk android:minSdkVersion="24"
+              android:targetSdkVersion="30" />
+
     <application>
         <provider
             android:name="android.tradefed.contentprovider.ManagedFileContentProvider"
diff --git a/util_apps/ContentProvider/main/java/android/tradefed/contentprovider/ManagedFileContentProvider.java b/util_apps/ContentProvider/main/java/android/tradefed/contentprovider/ManagedFileContentProvider.java
index d506be9..52579e3 100644
--- a/util_apps/ContentProvider/main/java/android/tradefed/contentprovider/ManagedFileContentProvider.java
+++ b/util_apps/ContentProvider/main/java/android/tradefed/contentprovider/ManagedFileContentProvider.java
@@ -23,8 +23,6 @@
 import android.net.Uri;
 import android.os.Environment;
 import android.os.ParcelFileDescriptor;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
 import android.util.Log;
 import android.webkit.MimeTypeMap;
 
@@ -85,14 +83,13 @@
      *     for files and for directories it returns one row for each {@link File} returned by {@link
      *     File#listFiles()}.
      */
-    @Nullable
     @Override
     public Cursor query(
-            @NonNull Uri uri,
-            @Nullable String[] projection,
-            @Nullable String selection,
-            @Nullable String[] selectionArgs,
-            @Nullable String sortOrder) {
+            Uri uri,
+            String[] projection,
+            String selection,
+            String[] selectionArgs,
+            String sortOrder) {
         File file = getFileForUri(uri);
         if ("/".equals(file.getAbsolutePath())) {
             // Querying the root will list all the known file (inserted)
@@ -126,15 +123,13 @@
         return cursor;
     }
 
-    @Nullable
     @Override
-    public String getType(@NonNull Uri uri) {
+    public String getType(Uri uri) {
         return getType(getFileForUri(uri));
     }
 
-    @Nullable
     @Override
-    public Uri insert(@NonNull Uri uri, @Nullable ContentValues contentValues) {
+    public Uri insert(Uri uri, ContentValues contentValues) {
         String extra = "";
         File file = getFileForUri(uri);
         if (!file.exists()) {
@@ -152,8 +147,7 @@
     }
 
     @Override
-    public int delete(
-            @NonNull Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) {
+    public int delete(Uri uri, String selection, String[] selectionArgs) {
         // Stop Tracking the File of directory if it was tracked and delete it from the disk
         mFileTracker.remove(uri);
         File file = getFileForUri(uri);
@@ -162,11 +156,7 @@
     }
 
     @Override
-    public int update(
-            @NonNull Uri uri,
-            @Nullable ContentValues values,
-            @Nullable String selection,
-            @Nullable String[] selectionArgs) {
+    public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
         File file = getFileForUri(uri);
         if (!file.exists()) {
             Log.e(TAG, String.format("Update - File from uri: '%s' does not exists.", uri));
@@ -184,8 +174,7 @@
     }
 
     @Override
-    public ParcelFileDescriptor openFile(@NonNull Uri uri, @NonNull String mode)
-            throws FileNotFoundException {
+    public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException {
         final File file = getFileForUri(uri);
         final int fileMode = modeToMode(mode);
 
@@ -225,7 +214,7 @@
         return value;
     }
 
-    private String getType(@NonNull File file) {
+    private String getType(File file) {
         final int lastDot = file.getName().lastIndexOf('.');
         if (lastDot >= 0) {
             final String extension = file.getName().substring(lastDot + 1);
@@ -239,7 +228,7 @@
     }
 
     @SuppressLint("SdCardPath")
-    private File getFileForUri(@NonNull Uri uri) {
+    private File getFileForUri(Uri uri) {
         // TODO: apply the /sdcard resolution to query() too.
         String uriPath = uri.getPath();
         try {