Merge cherrypicks of [12960599, 12959910, 12960718, 12960387] into rvc-qpr1-release

Change-Id: Idbfe226611b09c93853a37718bd680d4da3a5b34
diff --git a/aidl_typenames.cpp b/aidl_typenames.cpp
index ad89c1c..51c26d7 100644
--- a/aidl_typenames.cpp
+++ b/aidl_typenames.cpp
@@ -82,9 +82,9 @@
 }
 
 bool AidlTypenames::IsIgnorableImport(const string& import) const {
-  static set<string> ignore_import = {"android.os.IInterface",   "android.os.IBinder",
-                                      "android.os.Parcelable",   "android.os.Parcel",
-                                      "android.content.Context", "java.lang.String"};
+  static set<string> ignore_import = {
+      "android.os.IInterface",   "android.os.IBinder", "android.os.Parcelable", "android.os.Parcel",
+      "android.content.Context", "java.lang.String",   "java.lang.CharSequence"};
   // these known built-in types don't need to be imported
   const bool in_ignore_import = ignore_import.find(import) != ignore_import.end();
   // an already defined type doesn't need to be imported again unless it is from