Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aed7bf43 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Don't add API annotations in the internal R.java" into...

Merge "Don't add API annotations in the internal R.java" into rvc-dev-plus-aosp am: 7c72b7f4 am: 780aeb11 am: 47d47a8a

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11955280

Change-Id: I602f8515391d93daf1d538f965659dfdca62e550
parents 45900f61 47d47a8a
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -1272,7 +1272,8 @@ class Linker {
      return false;
      return false;
    }
    }


    ClassDefinition::WriteJavaFile(manifest_class.get(), package_utf8, true, &fout);
    ClassDefinition::WriteJavaFile(manifest_class.get(), package_utf8, true,
                                   false /* strip_api_annotations */, &fout);
    fout.Flush();
    fout.Flush();


    if (fout.HadError()) {
    if (fout.HadError()) {
+4 −1
Original line number Original line Diff line number Diff line
@@ -123,7 +123,7 @@ void AnnotationProcessor::AppendNewLine() {
  }
  }
}
}


void AnnotationProcessor::Print(Printer* printer) const {
void AnnotationProcessor::Print(Printer* printer, bool strip_api_annotations) const {
  if (has_comments_) {
  if (has_comments_) {
    std::string result = comment_.str();
    std::string result = comment_.str();
    for (const StringPiece& line : util::Tokenize(result, '\n')) {
    for (const StringPiece& line : util::Tokenize(result, '\n')) {
@@ -137,6 +137,9 @@ void AnnotationProcessor::Print(Printer* printer) const {
    printer->Println("@Deprecated");
    printer->Println("@Deprecated");
  }
  }


  if (strip_api_annotations) {
    return;
  }
  for (const AnnotationRule& rule : sAnnotationRules) {
  for (const AnnotationRule& rule : sAnnotationRules) {
    const auto& it = annotation_parameter_map_.find(rule.bit_mask);
    const auto& it = annotation_parameter_map_.find(rule.bit_mask);
    if (it != annotation_parameter_map_.end()) {
    if (it != annotation_parameter_map_.end()) {
+1 −1
Original line number Original line Diff line number Diff line
@@ -65,7 +65,7 @@ class AnnotationProcessor {
  void AppendNewLine();
  void AppendNewLine();


  // Writes the comments and annotations to the Printer.
  // Writes the comments and annotations to the Printer.
  void Print(text::Printer* printer) const;
  void Print(text::Printer* printer, bool strip_api_annotations = false) const;


 private:
 private:
  std::stringstream comment_;
  std::stringstream comment_;
+15 −0
Original line number Original line Diff line number Diff line
@@ -91,6 +91,21 @@ TEST(AnnotationProcessorTest, EmitsTestApiAnnotationAndRemovesFromComment) {
  EXPECT_THAT(annotations, HasSubstr("This is a test API"));
  EXPECT_THAT(annotations, HasSubstr("This is a test API"));
}
}


TEST(AnnotationProcessorTest, NotEmitSystemApiAnnotation) {
  AnnotationProcessor processor;
  processor.AppendComment("@SystemApi This is a system API");

  std::string annotations;
  StringOutputStream out(&annotations);
  Printer printer(&out);
  processor.Print(&printer, true /* strip_api_annotations */);
  out.Flush();

  EXPECT_THAT(annotations, Not(HasSubstr("@android.annotation.SystemApi")));
  EXPECT_THAT(annotations, Not(HasSubstr("@SystemApi")));
  EXPECT_THAT(annotations, HasSubstr("This is a system API"));
}

TEST(AnnotationProcessor, ExtractsFirstSentence) {
TEST(AnnotationProcessor, ExtractsFirstSentence) {
  EXPECT_THAT(AnnotationProcessor::ExtractFirstSentence("This is the only sentence"),
  EXPECT_THAT(AnnotationProcessor::ExtractFirstSentence("This is the only sentence"),
              Eq("This is the only sentence"));
              Eq("This is the only sentence"));
+8 −8
Original line number Original line Diff line number Diff line
@@ -23,15 +23,15 @@ using ::android::StringPiece;


namespace aapt {
namespace aapt {


void ClassMember::Print(bool /*final*/, Printer* printer) const {
void ClassMember::Print(bool /*final*/, Printer* printer, bool strip_api_annotations) const {
  processor_.Print(printer);
  processor_.Print(printer, strip_api_annotations);
}
}


void MethodDefinition::AppendStatement(const StringPiece& statement) {
void MethodDefinition::AppendStatement(const StringPiece& statement) {
  statements_.push_back(statement.to_string());
  statements_.push_back(statement.to_string());
}
}


void MethodDefinition::Print(bool final, Printer* printer) const {
void MethodDefinition::Print(bool final, Printer* printer, bool) const {
  printer->Print(signature_).Println(" {");
  printer->Print(signature_).Println(" {");
  printer->Indent();
  printer->Indent();
  for (const auto& statement : statements_) {
  for (const auto& statement : statements_) {
@@ -74,12 +74,12 @@ bool ClassDefinition::empty() const {
  return true;
  return true;
}
}


void ClassDefinition::Print(bool final, Printer* printer) const {
void ClassDefinition::Print(bool final, Printer* printer, bool strip_api_annotations) const {
  if (empty() && !create_if_empty_) {
  if (empty() && !create_if_empty_) {
    return;
    return;
  }
  }


  ClassMember::Print(final, printer);
  ClassMember::Print(final,  printer, strip_api_annotations);


  printer->Print("public ");
  printer->Print("public ");
  if (qualifier_ == ClassQualifier::kStatic) {
  if (qualifier_ == ClassQualifier::kStatic) {
@@ -93,7 +93,7 @@ void ClassDefinition::Print(bool final, Printer* printer) const {
    // and takes precedence over a previous member with the same name. The overridden member is
    // and takes precedence over a previous member with the same name. The overridden member is
    // set to nullptr.
    // set to nullptr.
    if (member != nullptr) {
    if (member != nullptr) {
      member->Print(final, printer);
      member->Print(final, printer, strip_api_annotations);
      printer->Println();
      printer->Println();
    }
    }
  }
  }
@@ -111,11 +111,11 @@ constexpr static const char* sWarningHeader =
    " */\n\n";
    " */\n\n";


void ClassDefinition::WriteJavaFile(const ClassDefinition* def, const StringPiece& package,
void ClassDefinition::WriteJavaFile(const ClassDefinition* def, const StringPiece& package,
                                    bool final, io::OutputStream* out) {
                                    bool final, bool strip_api_annotations, io::OutputStream* out) {
  Printer printer(out);
  Printer printer(out);
  printer.Print(sWarningHeader).Print("package ").Print(package).Println(";");
  printer.Print(sWarningHeader).Print("package ").Print(package).Println(";");
  printer.Println();
  printer.Println();
  def->Print(final, &printer);
  def->Print(final, &printer, strip_api_annotations);
}
}


}  // namespace aapt
}  // namespace aapt
Loading