From e612b44ecd679f151c6c7eba3d04bdae4d7311b4 Mon Sep 17 00:00:00 2001 From: Faisal Salman Date: Sun, 14 Mar 2021 22:47:23 +0700 Subject: [PATCH] Fix #470 Identify Android TV as SmartTV --- src/ua-parser.js | 8 ++++---- test/device-test.json | 9 +++++++++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/ua-parser.js b/src/ua-parser.js index 0813f4a..c242e0f 100755 --- a/src/ua-parser.js +++ b/src/ua-parser.js @@ -603,7 +603,7 @@ /android.+(hm[\s\-_]?note?[\s_]?(?:\d\w)?)\sbuild/i, // Xiaomi Hongmi /android.+(redmi[\s\-_]?(?:note|k)?(?:[\s_]?[\w\s]+))(?:\sbuild|\))/i, // Xiaomi Redmi - /android.+(mi[\s\-_]?(?:a\d|one|one[\s_]plus|note lte)?[\s_]?(?:\d?\w?)[\s_]?(?:plus)?)\sbuild/i + /android.+(mi[\s\-_]?(?:a\d|one|one[\s_]plus|note lte)?[\s_]?(?:\d?\w?)[\s_]?(?:plus)?)\sbuild/i // Xiaomi Mi ], [[MODEL, /_/g, ' '], [VENDOR, 'Xiaomi'], [TYPE, MOBILE]], [ /android.+(mi[\s\-_]?(?:pad)(?:[\s_]?[\w\s]+))(?:\sbuild|\))/i // Mi Pad tablets @@ -686,6 +686,9 @@ /android.+(Gigaset)[\s\-]+(Q\w{1,9})\s+build/i // Gigaset Tablets ], [VENDOR, MODEL, [TYPE, TABLET]], [ + + /[\s\/\(](android\stv|smart-?tv)[;\)\s]/i // SmartTV from Unidentified Vendors + ], [[TYPE, SMARTTV]], [ // Android Phones from Unidentified Vendors /android .+?; ([^;]+?)(?: build|\) applewebkit).+? mobile safari/i ], [MODEL, [TYPE, MOBILE]], [ @@ -697,9 +700,6 @@ /\s(mobile)(?:[;\/]|\ssafari)/i // Unidentifiable Mobile ], [[TYPE, util.lowerize], VENDOR, MODEL], [ - /[\s\/\(](smart-?tv)[;\)]/i // SmartTV - ], [[TYPE, SMARTTV]], [ - /(android[\w\.\s\-]{0,9});.+build/i // Generic Android Device ], [MODEL, [VENDOR, 'Generic']], [ diff --git a/test/device-test.json b/test/device-test.json index 8c5b0d9..247aeb4 100644 --- a/test/device-test.json +++ b/test/device-test.json @@ -1300,6 +1300,15 @@ "type": "smarttv" } }, + { + "desc": "Android TV", + "ua": "Mozilla/5.0 (Linux; Android 10; 2020/2021 UHD Android TV Build/QTG3.201102.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) version/4.0 Chrome/83.0.4103.101 Mobile Safari/537.36", + "expect": { + "vendor": "undefined", + "model": "undefined", + "type": "smarttv" + } + }, { "desc": "Gigaset Tablet", "ua": "Mozilla/5.0 (Linux; Android 4.2.2; Gigaset QV830 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",