Bug 1428182 - 8. Don't redefine keycodes when using unified headers; r=esawin draft
authorJim Chen <nchen@mozilla.com>
Tue, 30 Jan 2018 14:08:23 -0500
changeset 748995 fbdfd41f323f6438830ceb54b9b98e00f6d6e300
parent 748994 c17d030e0066286364f575671d5802b383af68a9
child 748996 f34f4d38ccd1cc8f371cf2fcaeb9967a75783649
push id97287
push userbmo:nchen@mozilla.com
push dateTue, 30 Jan 2018 19:09:20 +0000
reviewersesawin
bugs1428182
milestone60.0a1
Bug 1428182 - 8. Don't redefine keycodes when using unified headers; r=esawin The unified headers already define the keycodes in GeckoEditableSupport.cpp, so only define them ourselves when not using unified headers (by checking the __ANDROID_API_X__ macros). MozReview-Commit-ID: 3Ptakcm0rW
widget/android/GeckoEditableSupport.cpp
--- a/widget/android/GeckoEditableSupport.cpp
+++ b/widget/android/GeckoEditableSupport.cpp
@@ -28,18 +28,24 @@
 #define ALOGIME(args...) do { } while (0)
 #endif
 
 template<> const char
 nsWindow::NativePtr<mozilla::widget::GeckoEditableSupport>::sName[] =
         "GeckoEditableSupport";
 
 enum {
+    AKEYCODE_dummy, // Avoid enum without declarations.
+
     // These keycode masks are not defined in android/keycodes.h:
-#if __ANDROID_API__ < 13
+    // Note that the NDK unified headers always define these constants, so we
+    // need to ensure we're _not_ using unified headers, by checking for the
+    // absence of __ANDROID_API_X__ macros (e.g. __ANDROID_API_L__), which are
+    // only defined by the unified headers.
+#if __ANDROID_API__ < 13 && !defined(__ANDROID_API_I__)
     AKEYCODE_ESCAPE             = 111,
     AKEYCODE_FORWARD_DEL        = 112,
     AKEYCODE_CTRL_LEFT          = 113,
     AKEYCODE_CTRL_RIGHT         = 114,
     AKEYCODE_CAPS_LOCK          = 115,
     AKEYCODE_SCROLL_LOCK        = 116,
     AKEYCODE_META_LEFT          = 117,
     AKEYCODE_META_RIGHT         = 118,
@@ -124,50 +130,50 @@ enum {
     AKEYCODE_BUTTON_10          = 197,
     AKEYCODE_BUTTON_11          = 198,
     AKEYCODE_BUTTON_12          = 199,
     AKEYCODE_BUTTON_13          = 200,
     AKEYCODE_BUTTON_14          = 201,
     AKEYCODE_BUTTON_15          = 202,
     AKEYCODE_BUTTON_16          = 203,
 #endif
-#if __ANDROID_API__ < 14
+#if __ANDROID_API__ < 14 && !defined(__ANDROID_API_I__)
     AKEYCODE_LANGUAGE_SWITCH    = 204,
     AKEYCODE_MANNER_MODE        = 205,
     AKEYCODE_3D_MODE            = 206,
 #endif
-#if __ANDROID_API__ < 15
+#if __ANDROID_API__ < 15 && !defined(__ANDROID_API_J__)
     AKEYCODE_CONTACTS           = 207,
     AKEYCODE_CALENDAR           = 208,
     AKEYCODE_MUSIC              = 209,
     AKEYCODE_CALCULATOR         = 210,
 #endif
-#if __ANDROID_API__ < 16
+#if __ANDROID_API__ < 16 && !defined(__ANDROID_API_J__)
     AKEYCODE_ZENKAKU_HANKAKU    = 211,
     AKEYCODE_EISU               = 212,
     AKEYCODE_MUHENKAN           = 213,
     AKEYCODE_HENKAN             = 214,
     AKEYCODE_KATAKANA_HIRAGANA  = 215,
     AKEYCODE_YEN                = 216,
     AKEYCODE_RO                 = 217,
     AKEYCODE_KANA               = 218,
     AKEYCODE_ASSIST             = 219,
 #endif
-#if __ANDROID_API__ < 18
+#if __ANDROID_API__ < 18 && !defined(__ANDROID_API_J_MR2__)
     AKEYCODE_BRIGHTNESS_DOWN    = 220,
     AKEYCODE_BRIGHTNESS_UP      = 221,
 #endif
-#if __ANDROID_API__ < 19
+#if __ANDROID_API__ < 19 && !defined(__ANDROID_API_K__)
     AKEYCODE_MEDIA_AUDIO_TRACK  = 222,
 #endif
-#if __ANDROID_API__ < 20
+#if __ANDROID_API__ < 20 && !defined(__ANDROID_API_L__)
     AKEYCODE_SLEEP              = 223,
     AKEYCODE_WAKEUP             = 224,
 #endif
-#if __ANDROID_API__ < 21
+#if __ANDROID_API__ < 21 && !defined(__ANDROID_API_L__)
     AKEYCODE_PAIRING                       = 225,
     AKEYCODE_MEDIA_TOP_MENU                = 226,
     AKEYCODE_11                            = 227,
     AKEYCODE_12                            = 228,
     AKEYCODE_LAST_CHANNEL                  = 229,
     AKEYCODE_TV_DATA_SERVICE               = 230,
     AKEYCODE_VOICE_ASSIST                  = 231,
     AKEYCODE_TV_RADIO_SERVICE              = 232,
@@ -194,45 +200,41 @@ enum {
     AKEYCODE_TV_AUDIO_DESCRIPTION_MIX_UP   = 253,
     AKEYCODE_TV_AUDIO_DESCRIPTION_MIX_DOWN = 254,
     AKEYCODE_TV_ZOOM_MODE                  = 255,
     AKEYCODE_TV_CONTENTS_MENU              = 256,
     AKEYCODE_TV_MEDIA_CONTEXT_MENU         = 257,
     AKEYCODE_TV_TIMER_PROGRAMMING          = 258,
     AKEYCODE_HELP                          = 259,
 #endif
-#if __ANDROID_API__ < 23
+#if __ANDROID_API__ < 23 && !defined(__ANDROID_API_M__)
     AKEYCODE_NAVIGATE_PREVIOUS  = 260,
     AKEYCODE_NAVIGATE_NEXT      = 261,
     AKEYCODE_NAVIGATE_IN        = 262,
     AKEYCODE_NAVIGATE_OUT       = 263,
+    AKEYCODE_MEDIA_SKIP_FORWARD  = 272,
+    AKEYCODE_MEDIA_SKIP_BACKWARD = 273,
+    AKEYCODE_MEDIA_STEP_FORWARD  = 274,
+    AKEYCODE_MEDIA_STEP_BACKWARD = 275,
 #endif
-#if __ANDROID_API__ < 24
+#if __ANDROID_API__ < 24 && !defined(__ANDROID_API_N__)
     AKEYCODE_STEM_PRIMARY       = 264,
     AKEYCODE_STEM_1             = 265,
     AKEYCODE_STEM_2             = 266,
     AKEYCODE_STEM_3             = 267,
     AKEYCODE_DPAD_UP_LEFT       = 268,
     AKEYCODE_DPAD_DOWN_LEFT     = 269,
     AKEYCODE_DPAD_UP_RIGHT      = 270,
     AKEYCODE_DPAD_DOWN_RIGHT    = 271,
-#endif
-#if __ANDROID_API__ < 23
-    AKEYCODE_MEDIA_SKIP_FORWARD  = 272,
-    AKEYCODE_MEDIA_SKIP_BACKWARD = 273,
-    AKEYCODE_MEDIA_STEP_FORWARD  = 274,
-    AKEYCODE_MEDIA_STEP_BACKWARD = 275,
-#endif
-#if __ANDROID_API__ < 24
     AKEYCODE_SOFT_SLEEP         = 276,
     AKEYCODE_CUT                = 277,
     AKEYCODE_COPY               = 278,
     AKEYCODE_PASTE              = 279,
 #endif
-#if __ANDROID_API__ < 25
+#if __ANDROID_API__ < 25 && !defined(__ANDROID_API_N_MR1__)
     AKEYCODE_SYSTEM_NAVIGATION_UP    = 280,
     AKEYCODE_SYSTEM_NAVIGATION_DOWN  = 281,
     AKEYCODE_SYSTEM_NAVIGATION_LEFT  = 282,
     AKEYCODE_SYSTEM_NAVIGATION_RIGHT = 283,
 #endif
 };
 
 static uint32_t