libandroidfw: add FALLTHROUGH_INTENDED to silence warnings

Add FALLTHROUGH_INTENDED to silence compiler warnings such as the
following:

-------- 8< --------
[ 42% 27/63] //frameworks/base/libs/androidfw:libandroidfw clang++
Locale.cpp
frameworks/base/libs/androidfw/Locale.cpp:166:7: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough]
      case 5:
      ^
frameworks/base/libs/androidfw/Locale.cpp:166:7: note: insert 'FALLTHROUGH_INTENDED;' to silence this warning
      case 5:
      ^
      FALLTHROUGH_INTENDED;
frameworks/base/libs/androidfw/Locale.cpp:166:7: note: insert 'break;' to avoid fall-through
      case 5:
      ^
      break;
1 warning generated.
-------- >8 --------

Test: 'make libandroidfw' builds with no compiler warnings
Change-Id: I6bc67f2c072f88c9f1a92b7378a6f1a460db70b4
diff --git a/libs/androidfw/Android.bp b/libs/androidfw/Android.bp
index 92efb6b..98af3eb 100644
--- a/libs/androidfw/Android.bp
+++ b/libs/androidfw/Android.bp
@@ -59,8 +59,6 @@
         "ZipFileRO.cpp",
         "ZipUtils.cpp",
     ],
-    // Allow implicit fallthroughs in Locale.cpp and ResourceTypes.cpp until they are fixed.
-    cflags: ["-Wno-implicit-fallthrough"],
     export_include_dirs: ["include"],
     export_shared_lib_headers: ["libz"],
     target: {
diff --git a/libs/androidfw/Locale.cpp b/libs/androidfw/Locale.cpp
index 2870066..3eedda8 100644
--- a/libs/androidfw/Locale.cpp
+++ b/libs/androidfw/Locale.cpp
@@ -14,6 +14,7 @@
  * limitations under the License.
  */
 
+#include "android-base/macros.h"
 #include "androidfw/Locale.h"
 #include "androidfw/Util.h"
 
@@ -162,6 +163,7 @@
           set_script(subtags[1].c_str());
           break;
         }
+        FALLTHROUGH_INTENDED;
       case 5:
       case 6:
       case 7:
diff --git a/libs/androidfw/ResourceTypes.cpp b/libs/androidfw/ResourceTypes.cpp
index 388548b..76db18d 100644
--- a/libs/androidfw/ResourceTypes.cpp
+++ b/libs/androidfw/ResourceTypes.cpp
@@ -29,6 +29,7 @@
 #include <memory>
 #include <type_traits>
 
+#include <android-base/macros.h>
 #include <androidfw/ByteBucketArray.h>
 #include <androidfw/ResourceTypes.h>
 #include <androidfw/TypeWrappers.h>
@@ -3073,6 +3074,7 @@
                }
                break;
            }
+           FALLTHROUGH_INTENDED;
        case 5:
        case 6:
        case 7:
@@ -7002,7 +7004,7 @@
     switch (value->dataType) {
         case Res_value::TYPE_ATTRIBUTE:
             resolvedType = Res_value::TYPE_ATTRIBUTE;
-        // fallthrough
+            FALLTHROUGH_INTENDED;
         case Res_value::TYPE_REFERENCE:
             // Only resolve non-dynamic references and attributes if the package is loaded as a
             // library or if a shared library is attempting to retrieve its own resource
@@ -7015,7 +7017,7 @@
         break;
         case Res_value::TYPE_DYNAMIC_ATTRIBUTE:
             resolvedType = Res_value::TYPE_ATTRIBUTE;
-        // fallthrough
+            FALLTHROUGH_INTENDED;
         case Res_value::TYPE_DYNAMIC_REFERENCE:
             break;
         default: