Don't generate or require removed.txt file, fix initial API generation

Removes all existing removed.txt files. Fixes API generation for
annotations project. Fixes the build.

Test: ./gradlew updateApi
Change-Id: Idf8320c5bd5bfe71bc6302af77513c9947b49a70
diff --git a/annotations/api/27.0.0-SNAPSHOT.txt b/annotations/api/27.0.0-SNAPSHOT.txt
new file mode 100644
index 0000000..c52f7e1
--- /dev/null
+++ b/annotations/api/27.0.0-SNAPSHOT.txt
@@ -0,0 +1,171 @@
+package android.support.annotation {
+
+  public abstract class AnimRes implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class AnimatorRes implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class AnyRes implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class AnyThread implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class ArrayRes implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class AttrRes implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class BinderThread implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class BoolRes implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class CallSuper implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class CheckResult implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class ColorInt implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class ColorLong implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class ColorRes implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class DimenRes implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class Dimension implements java.lang.annotation.Annotation {
+    field public static final int DP = 0; // 0x0
+    field public static final int PX = 1; // 0x1
+    field public static final int SP = 2; // 0x2
+  }
+
+  public abstract class DrawableRes implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class FloatRange implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class FontRes implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class FractionRes implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class GuardedBy implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class HalfFloat implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class IdRes implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class IntDef implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class IntRange implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class IntegerRes implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class InterpolatorRes implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class Keep implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class LayoutRes implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class MainThread implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class MenuRes implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class NonNull implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class Nullable implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class PluralsRes implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class Px implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class RawRes implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class RequiresApi implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class RequiresPermission implements java.lang.annotation.Annotation {
+  }
+
+  public static abstract class RequiresPermission.Read implements java.lang.annotation.Annotation {
+  }
+
+  public static abstract class RequiresPermission.Write implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class RestrictTo implements java.lang.annotation.Annotation {
+  }
+
+  public static final class RestrictTo.Scope extends java.lang.Enum {
+    method public static android.support.annotation.RestrictTo.Scope valueOf(java.lang.String);
+    method public static final android.support.annotation.RestrictTo.Scope[] values();
+    enum_constant public static final deprecated android.support.annotation.RestrictTo.Scope GROUP_ID;
+    enum_constant public static final android.support.annotation.RestrictTo.Scope LIBRARY;
+    enum_constant public static final android.support.annotation.RestrictTo.Scope LIBRARY_GROUP;
+    enum_constant public static final android.support.annotation.RestrictTo.Scope SUBCLASSES;
+    enum_constant public static final android.support.annotation.RestrictTo.Scope TESTS;
+  }
+
+  public abstract class Size implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class StringDef implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class StringRes implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class StyleRes implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class StyleableRes implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class TransitionRes implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class UiThread implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class VisibleForTesting implements java.lang.annotation.Annotation {
+    field public static final int NONE = 5; // 0x5
+    field public static final int PACKAGE_PRIVATE = 3; // 0x3
+    field public static final int PRIVATE = 2; // 0x2
+    field public static final int PROTECTED = 4; // 0x4
+  }
+
+  public abstract class WorkerThread implements java.lang.annotation.Annotation {
+  }
+
+  public abstract class XmlRes implements java.lang.annotation.Annotation {
+  }
+
+}
+
diff --git a/annotations/build.gradle b/annotations/build.gradle
index 195a0e7..b8a14b7 100644
--- a/annotations/build.gradle
+++ b/annotations/build.gradle
@@ -64,7 +64,9 @@
 // Disable strict javadoc lint checks with javadoc v8 builds on Mac. http://b/26744780
 if (JavaVersion.current().isJava8Compatible()) {
     tasks.withType(Javadoc) {
-        options.addBooleanOption('Xdoclint:none', true)
+        if (options.doclet == null) {
+            options.addBooleanOption('Xdoclint:none', true)
+        }
     }
 }
 
diff --git a/api/removed.txt b/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/api/removed.txt
+++ /dev/null
diff --git a/buildSrc/diff_and_docs.gradle b/buildSrc/diff_and_docs.gradle
index 6a28869..f5dd5dc 100644
--- a/buildSrc/diff_and_docs.gradle
+++ b/buildSrc/diff_and_docs.gradle
@@ -226,27 +226,25 @@
 
         newApiFile = newApi
         oldApiFile = oldApi
-        newRemovedApiFile = new File(project.docsDir, 'release/' + project.name + '/removed.txt')
-        oldRemovedApiFile = new File(project.projectDir, 'api/' + project.name + '/removed.txt')
 
         whitelistErrorsFile = whitelist
 
         doFirst {
-            logger.lifecycle "Verifying ${newApi.name} against ${oldApi.name}..."
+            logger.lifecycle "Verifying ${newApi.name} against ${oldApi ? oldApi.name : "nothing"}..."
         }
     }
 }
 
 DoclavaTask createGenerateApiTask(Project project) {
     // Generates API files
-    return project.tasks.create(name: "generateApi", type: DoclavaTask.class, dependsOn: configurations.doclava) {
+    return project.tasks.create(name: "generateApi", type: DoclavaTask.class,
+            dependsOn: configurations.doclava) {
         docletpath = configurations.doclava.resolve()
         destinationDir = project.docsDir
 
         // Base classpath is Android SDK, sub-projects add their own.
         classpath = rootProject.ext.androidJar
         apiFile = new File(project.docsDir, 'release/' + project.name + '/current.txt')
-        removedApiFile = new File(project.docsDir, 'release/' + project.name + '/removed.txt')
         generateDocs = false
 
         options {
@@ -307,17 +305,18 @@
     def version = new Version(project.version)
     def workingDir = project.projectDir
 
-    def generateApi = createGenerateApiTask(project)
+    DoclavaTask generateApi = createGenerateApiTask(project)
     createVerifyUpdateApiAllowedTask(project)
 
     // Make sure the API surface has not broken since the last release.
     def previousApiFile = version.isPatch() ? getApiFile(workingDir, project.version)
             : getPreviousApiFile(workingDir, project.version)
 
-    def whitelistFile = new File(
+    def whitelistFile = previousApiFile == null ? null : new File(
             previousApiFile.parentFile, stripExtension(previousApiFile.name) + ".ignore")
-    def checkApiRelease = createCheckApiTask(project, "checkApiRelease", CHECK_API_CONFIG_RELEASE,
-            previousApiFile, generateApi.apiFile, whitelistFile).dependsOn(generateApi)
+    def checkApiRelease = createCheckApiTask(project, "checkApiRelease",
+            CHECK_API_CONFIG_RELEASE, previousApiFile, generateApi.apiFile, whitelistFile)
+            .dependsOn(generateApi)
 
     // Allow a comma-delimited list of whitelisted errors.
     if (project.hasProperty("ignore")) {
@@ -341,15 +340,13 @@
     // Track API change history.
     def apiFilePattern = /(\d+\.\d+\.\d).txt/
     File apiDir = new File(project.projectDir, 'api')
-    File lastApiFile;
     apiDir.eachFileMatch FileType.FILES, ~apiFilePattern, { File apiFile ->
         def apiLevel = (apiFile.name =~ apiFilePattern)[0][1]
         rootProject.generateDocs.sinces.add([apiFile.absolutePath, apiLevel])
-        lastApiFile = apiFile
     }
 
-    // Associate latest API surface with the Maven artifact.
-    rootProject.generateDocs.artifacts.add([lastApiFile.absolutePath, artifact])
+    // Associate current API surface with the Maven artifact.
+    rootProject.generateDocs.artifacts.add([generateApi.apiFile.absolutePath, artifact])
 
     rootProject.createArchive.dependsOn checkApi
 }
@@ -383,8 +380,6 @@
         description 'Updates the candidate API file to incorporate valid changes.'
         newApiFile = project.checkApiRelease.newApiFile
         oldApiFile = getApiFile(project.projectDir, project.version)
-        newRemovedApiFile = project.checkApiRelease.newRemovedApiFile
-        oldRemovedApiFile = new File(project.projectDir, 'api/removed.txt')
         whitelistErrors = project.checkApiRelease.whitelistErrors
         whitelistErrorsFile = project.checkApiRelease.whitelistErrorsFile
     }
diff --git a/buildSrc/src/main/groovy/android/support/checkapi/CheckApiTask.groovy b/buildSrc/src/main/groovy/android/support/checkapi/CheckApiTask.groovy
index 2aa9d21..05b4b1c 100644
--- a/buildSrc/src/main/groovy/android/support/checkapi/CheckApiTask.groovy
+++ b/buildSrc/src/main/groovy/android/support/checkapi/CheckApiTask.groovy
@@ -50,10 +50,12 @@
     private static final String ANSI_YELLOW = "\u001B[33m";
 
     /** API file that represents the existing API surface. */
+    @Optional
     @InputFile
     File oldApiFile
 
     /** API file that represents the existing API surface's removals. */
+    @Optional
     @InputFile
     File oldRemovedApiFile
 
@@ -62,15 +64,14 @@
     File newApiFile
 
     /** API file that represents the candidate API surface's removals. */
+    @Optional
     @InputFile
     File newRemovedApiFile
 
     /** Optional file containing a newline-delimited list of error SHAs to ignore. */
-    @Nullable
     File whitelistErrorsFile
 
     @Optional
-    @Nullable
     @InputFile
     File getWhiteListErrorsFileInput() {
         // Gradle requires non-null InputFiles to exist -- even with Optional -- so work around that
@@ -87,9 +88,8 @@
      * Packages names will be matched exactly; sub-packages are not automatically recognized.
      */
     @Optional
-    @Nullable
     @Input
-    Collection ignoredPackages = null
+    Collection ignoredPackages
 
     /**
      * Optional list of classes to ignore.
@@ -98,9 +98,8 @@
      * automatically recognized.
      */
     @Optional
-    @Nullable
     @Input
-    Collection ignoredClasses = null
+    Collection ignoredClasses
 
     /**
      * Optional set of error SHAs to ignore.
@@ -117,8 +116,7 @@
     // A dummy output file meant only to tag when this check was last ran.
     // Without any outputs, Gradle will run this task every time.
     @Optional
-    @Nullable
-    private File mOutputFile = null;
+    private File mOutputFile
 
     @OutputFile
     public File getOutputFile() {
@@ -164,17 +162,12 @@
     }
 
     private Set<File> collectAndVerifyInputs() {
-        Set<File> apiFiles = [getOldApiFile(), getNewApiFile(), getOldRemovedApiFile(),
-                              getNewRemovedApiFile()] as Set
-        if (apiFiles.size() != 4) {
-            throw new InvalidUserDataException("""Conflicting input files:
-    oldApiFile: ${getOldApiFile()}
-    newApiFile: ${getNewApiFile()}
-    oldRemovedApiFile: ${getOldRemovedApiFile()}
-    newRemovedApiFile: ${getNewRemovedApiFile()}
-All of these must be distinct files.""")
+        if (getOldRemovedApiFile() != null && getNewRemovedApiFile() != null) {
+            return [getOldApiFile(), getNewApiFile(), getOldRemovedApiFile(),
+                    getNewRemovedApiFile()] as Set
+        } else {
+            return [getOldApiFile(), getNewApiFile()] as Set
         }
-        return apiFiles;
     }
 
     public void setCheckApiErrors(Collection errors) {
@@ -194,6 +187,11 @@
 
     @TaskAction
     public void exec() {
+        if (getOldApiFile() == null) {
+            // Nothing to do.
+            return
+        }
+
         final def apiFiles = collectAndVerifyInputs()
 
         OutputStream errStream = new ByteArrayOutputStream()
@@ -207,8 +205,6 @@
             minHeapSize = '128m'
             maxHeapSize = '1024m'
 
-            // [other options] old_api.txt new_api.txt old_removed_api.txt new_removed_api.txt
-
             // add -error LEVEL for every error level we want to fail the build on.
             getCheckApiErrors().each { args('-error', it) }
             getCheckApiWarnings().each { args('-warning', it) }
diff --git a/buildSrc/src/main/groovy/android/support/doclava/DoclavaTask.groovy b/buildSrc/src/main/groovy/android/support/doclava/DoclavaTask.groovy
index 2b5ae71..651446f 100644
--- a/buildSrc/src/main/groovy/android/support/doclava/DoclavaTask.groovy
+++ b/buildSrc/src/main/groovy/android/support/doclava/DoclavaTask.groovy
@@ -14,17 +14,15 @@
  * limitations under the License.
  */
 
-package android.support.doclava;
+package android.support.doclava
 
-import org.gradle.api.InvalidUserDataException
-import org.gradle.api.Nullable
 import org.gradle.api.tasks.Input
 import org.gradle.api.tasks.InputFiles
 import org.gradle.api.tasks.javadoc.Javadoc
 import org.gradle.api.tasks.Optional
 import org.gradle.api.tasks.OutputDirectory
 import org.gradle.api.tasks.OutputFile
-import org.gradle.external.javadoc.JavadocOptionFileOption;
+import org.gradle.external.javadoc.JavadocOptionFileOption
 
 public class DoclavaTask extends Javadoc {
 
@@ -64,9 +62,8 @@
      * Packages names will be matched exactly; sub-packages are not automatically recognized.
      */
     @Optional
-    @Nullable
     @Input
-    Collection hiddenPackages = null
+    Collection hiddenPackages
 
     /**
      * If non-null and not-empty, the whitelist of packages that will be present in the generated
@@ -74,9 +71,8 @@
      * Wildcards are accepted.
      */
     @Optional
-    @Nullable
     @Input
-    Set<String> stubPackages = null
+    Set<String> stubPackages
 
     @Input
     boolean generateDocs = true
@@ -86,34 +82,30 @@
      * If this is non-null, then {@link #removedApiFile} must be non-null as well.
      */
     @Optional
-    @Nullable
     @OutputFile
-    File apiFile = null
+    File apiFile
 
     /**
      * If non-null, the location of where to place the generated removed api file.
      * If this is non-null, then {@link #apiFile} must be non-null as well.
      */
     @Optional
-    @Nullable
     @OutputFile
-    File removedApiFile = null
+    File removedApiFile
 
     /**
      * If non-null, the location of the generated keep list.
      */
     @Optional
-    @Nullable
     @OutputFile
-    File keepListFile = null
+    File keepListFile
 
     /**
      * If non-null, the location to put the generated stub sources.
      */
     @Optional
-    @Nullable
     @OutputDirectory
-    File stubsDir = null
+    File stubsDir
 
     public DoclavaTask() {
         failOnError = true
@@ -123,10 +115,10 @@
         // doclava doesn't understand '-doctitle'
         title = null
         maxMemory = "1280m"
-        // TODO(csyoung) Some way to override this?
-        // If none of generateDocs, apiFile, keepListFile, or stubJarsDir are true, then there is no work to do.
+        // If none of generateDocs, apiFile, keepListFile, or stubJarsDir are true, then there is
+        // no work to do.
         onlyIf( { getGenerateDocs() ||
-                (getApiFile() != null && getRemovedApiFile() != null) ||
+                getApiFile() != null ||
                 getKeepListFile() != null ||
                 getStubsDir() != null } )
     }
@@ -167,18 +159,6 @@
         doclavaHidden = hidden as int[]
     }
 
-    private static boolean verifyAndGetGenerateApiFiles(File apiFile, File removedApiFile) {
-        if (apiFile == null) {
-            if (removedApiFile == null) {
-                return false
-            } else {
-                throw new InvalidUserDataException('removedApiFile specified but not apiFile')
-            }
-        } else {
-            return true
-        }
-    }
-
     /**
      * "Configures" this DoclavaTask with parameters that might not be at their final values
      * until this task is run.
@@ -188,31 +168,36 @@
 
         // configure doclava error/warning/hide levels
         JavadocOptionFileOption hide = options.addMultilineMultiValueOption("hide")
-        hide.setValue(getDoclavaHidden().collect({[it.toString()]}))
+        hide.setValue(getDoclavaHidden().collect({ [it.toString()] }))
 
         JavadocOptionFileOption warning = options.addMultilineMultiValueOption("warning")
-        warning.setValue(getDoclavaWarnings().collect({[it.toString()]}))
+        warning.setValue(getDoclavaWarnings().collect({ [it.toString()] }))
 
         JavadocOptionFileOption error = options.addMultilineMultiValueOption("error")
-        error.setValue(getDoclavaErrors().collect({[it.toString()]}))
+        error.setValue(getDoclavaErrors().collect({ [it.toString()] }))
 
         Collection hiddenPackages = getHiddenPackages()
         if (hiddenPackages) {
             JavadocOptionFileOption hidePackage =
                     options.addMultilineMultiValueOption("hidePackage")
-            hidePackage.setValue(hiddenPackages.collect({[it.toString()]}))
+            hidePackage.setValue(hiddenPackages.collect({ [it.toString()] }))
         }
 
         if (!getGenerateDocs()) {
             options.addOption(new DoclavaJavadocOptionFileOption('nodocs'))
         }
-        // If requested, generate the api files.
+
+        // If requested, generate the API files.
         File apiFile = getApiFile()
-        File removedApiFile = getRemovedApiFile()
-        if (verifyAndGetGenerateApiFiles(apiFile, removedApiFile)) {
+        if (apiFile != null) {
             options.addStringOption('api', apiFile.absolutePath)
-            options.addStringOption('removedApi', removedApiFile.absolutePath)
+
+            File removedApiFile = getRemovedApiFile()
+            if (removedApiFile != null) {
+                options.addStringOption('removedApi', removedApiFile.absolutePath)
+            }
         }
+
         // If requested, generate the keep list.
         File keepListFile = getKeepListFile()
         if (keepListFile != null) {
@@ -233,7 +218,7 @@
 
     @Override
     public void generate() {
-        configureDoclava();
-        super.generate();
+        configureDoclava()
+        super.generate()
     }
-}
\ No newline at end of file
+}
diff --git a/buildSrc/src/main/java/android/support/checkapi/UpdateApiTask.java b/buildSrc/src/main/java/android/support/checkapi/UpdateApiTask.java
index 55f118a..de2db91 100644
--- a/buildSrc/src/main/java/android/support/checkapi/UpdateApiTask.java
+++ b/buildSrc/src/main/java/android/support/checkapi/UpdateApiTask.java
@@ -19,7 +19,6 @@
 import com.google.common.io.Files;
 
 import org.gradle.api.DefaultTask;
-import org.gradle.api.Nullable;
 import org.gradle.api.tasks.Input;
 import org.gradle.api.tasks.InputFile;
 import org.gradle.api.tasks.Optional;
@@ -57,6 +56,7 @@
     }
 
     @InputFile
+    @Optional
     public File getNewRemovedApiFile() {
         return mNewRemovedApiFile;
     }
@@ -85,6 +85,7 @@
     }
 
     @OutputFile
+    @Optional
     public File getOldRemovedApiFile() {
         return mOldRemovedApiFile;
     }
@@ -95,7 +96,6 @@
 
     @OutputFile
     @Optional
-    @Nullable
     public File getWhitelistErrorsFile() {
         return mWhitelistErrorsFile;
     }
@@ -110,7 +110,14 @@
     @TaskAction
     public void doUpdate() throws Exception {
         Files.copy(getNewApiFile(), getOldApiFile());
-        Files.copy(getNewRemovedApiFile(), getOldRemovedApiFile());
+
+        if (getOldRemovedApiFile() != null) {
+            if (getNewRemovedApiFile() != null) {
+                Files.copy(getNewRemovedApiFile(), getOldRemovedApiFile());
+            } else {
+                getOldRemovedApiFile().delete();
+            }
+        }
 
         if (mWhitelistErrorsFile != null && !mWhitelistErrors.isEmpty()) {
             if (mWhitelistErrorsFile.exists()) {
diff --git a/compat/api/removed.txt b/compat/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/compat/api/removed.txt
+++ /dev/null
diff --git a/content/api/removed.txt b/content/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/content/api/removed.txt
+++ /dev/null
diff --git a/core-ui/api/removed.txt b/core-ui/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/core-ui/api/removed.txt
+++ /dev/null
diff --git a/core-utils/api/removed.txt b/core-utils/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/core-utils/api/removed.txt
+++ /dev/null
diff --git a/customtabs/api/removed.txt b/customtabs/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/customtabs/api/removed.txt
+++ /dev/null
diff --git a/design/api/removed.txt b/design/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/design/api/removed.txt
+++ /dev/null
diff --git a/dynamic-animation/api/removed.txt b/dynamic-animation/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/dynamic-animation/api/removed.txt
+++ /dev/null
diff --git a/emoji/appcompat/api/removed.txt b/emoji/appcompat/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/emoji/appcompat/api/removed.txt
+++ /dev/null
diff --git a/emoji/bundled/api/removed.txt b/emoji/bundled/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/emoji/bundled/api/removed.txt
+++ /dev/null
diff --git a/emoji/core/api/removed.txt b/emoji/core/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/emoji/core/api/removed.txt
+++ /dev/null
diff --git a/exifinterface/api/removed.txt b/exifinterface/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/exifinterface/api/removed.txt
+++ /dev/null
diff --git a/fragment/api/removed.txt b/fragment/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/fragment/api/removed.txt
+++ /dev/null
diff --git a/graphics/drawable/animated/api/removed.txt b/graphics/drawable/animated/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/graphics/drawable/animated/api/removed.txt
+++ /dev/null
diff --git a/graphics/drawable/static/api/removed.txt b/graphics/drawable/static/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/graphics/drawable/static/api/removed.txt
+++ /dev/null
diff --git a/lifecycle/common/api/removed.txt b/lifecycle/common/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/lifecycle/common/api/removed.txt
+++ /dev/null
diff --git a/lifecycle/runtime/api/removed.txt b/lifecycle/runtime/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/lifecycle/runtime/api/removed.txt
+++ /dev/null
diff --git a/media-compat/api/removed.txt b/media-compat/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/media-compat/api/removed.txt
+++ /dev/null
diff --git a/percent/api/removed.txt b/percent/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/percent/api/removed.txt
+++ /dev/null
diff --git a/recommendation/api/removed.txt b/recommendation/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/recommendation/api/removed.txt
+++ /dev/null
diff --git a/transition/api/removed.txt b/transition/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/transition/api/removed.txt
+++ /dev/null
diff --git a/tv-provider/api/removed.txt b/tv-provider/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/tv-provider/api/removed.txt
+++ /dev/null
diff --git a/v13/api/removed.txt b/v13/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/v13/api/removed.txt
+++ /dev/null
diff --git a/v14/preference/api/removed.txt b/v14/preference/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/v14/preference/api/removed.txt
+++ /dev/null
diff --git a/v17/leanback/api/removed.txt b/v17/leanback/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/v17/leanback/api/removed.txt
+++ /dev/null
diff --git a/v17/preference-leanback/api/removed.txt b/v17/preference-leanback/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/v17/preference-leanback/api/removed.txt
+++ /dev/null
diff --git a/v7/appcompat/api/removed.txt b/v7/appcompat/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/v7/appcompat/api/removed.txt
+++ /dev/null
diff --git a/v7/cardview/api/removed.txt b/v7/cardview/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/v7/cardview/api/removed.txt
+++ /dev/null
diff --git a/v7/gridlayout/api/removed.txt b/v7/gridlayout/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/v7/gridlayout/api/removed.txt
+++ /dev/null
diff --git a/v7/mediarouter/api/removed.txt b/v7/mediarouter/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/v7/mediarouter/api/removed.txt
+++ /dev/null
diff --git a/v7/palette/api/removed.txt b/v7/palette/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/v7/palette/api/removed.txt
+++ /dev/null
diff --git a/v7/preference/api/removed.txt b/v7/preference/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/v7/preference/api/removed.txt
+++ /dev/null
diff --git a/v7/recyclerview/api/removed.txt b/v7/recyclerview/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/v7/recyclerview/api/removed.txt
+++ /dev/null
diff --git a/wear/api/removed.txt b/wear/api/removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/wear/api/removed.txt
+++ /dev/null