/** * @param string $userAgent * * @return bool */ public function canHandle($userAgent) { if (Utils::isDesktopBrowser($userAgent)) { return false; } return Utils::checkIfContainsAll($userAgent, array('Android', 'Opera Mini')); }
/** * @param string $userAgent * * @return string */ public function applyRecoveryMatch($userAgent) { if (Utils::checkIfContainsAll($userAgent, array('like Gecko'))) { return 'windows_8_rt_ver1_subos81'; } else { return 'generic_windows_8_rt'; } }
/** * @param string $userAgent * * @return null|string */ public function applyRecoveryMatch($userAgent) { if (Utils::checkIfContainsAll($userAgent, array('Windows NT 5', 'POLARIS'))) { return 'generic_lguplus_rexos_facebook_browser'; } if (Utils::checkIfContains($userAgent, 'Windows NT 5')) { return 'generic_lguplus_rexos_webviewer_browser'; } if (Utils::checkIfContainsAll($userAgent, array('Windows CE', 'POLARIS'))) { return 'generic_lguplus_winmo_facebook_browser'; } if (Utils::checkIfContainsAll($userAgent, array('Android', 'AppleWebKit'))) { return 'generic_lguplus_android_webkit_browser'; } return WurflConstants::NO_MATCH; }
/** * @param string $userAgent * * @return null|string */ public function applyRecoveryMatch($userAgent) { if (Utils::checkIfContainsAnyOf($userAgent, array('WPDesktop', 'ZuneWP7')) || Utils::checkIfContainsAll($userAgent, array('Mozilla/5.0 (Windows NT ', ' ARM;', ' Edge/'))) { if (Utils::checkIfContainsAll($userAgent, array('Mozilla/5.0 (Windows NT ', ' ARM;', ' Edge/'))) { return 'generic_ms_phone_os10_desktopmode'; } if (Utils::checkIfContains($userAgent, 'WPDesktop')) { return 'generic_ms_phone_os8_desktopmode'; } if (Utils::checkIfContains($userAgent, 'Trident/5.0')) { return 'generic_ms_phone_os7_5_desktopmode'; } return 'generic_ms_phone_os7_desktopmode'; } $version = self::getWindowsPhoneVersion($userAgent); if ($version === '10.0') { return 'generic_ms_phone_os10'; } if ($version === '8.1') { return 'generic_ms_phone_os8_1'; } if ($version === '8.0') { return 'generic_ms_phone_os8'; } if ($version === '7.8') { return 'generic_ms_phone_os7_8'; } if ($version === '7.5') { return 'generic_ms_phone_os7_5'; } if ($version === '7.0') { return 'generic_ms_phone_os7'; } if ($version === '6.5') { return 'generic_ms_winmo6_5'; } //These are probably UAs of the type "Windows Phone Ad Client (Xna)/5.1.0.0 BMID/E67970D969" if (Utils::checkIfStartsWithAnyOf($userAgent, array('Windows Phone Ad Client', 'WindowsPhoneAdClient'))) { return 'generic_ms_phone_os7'; } return WurflConstants::NO_MATCH; }
/** * @param string $userAgent * * @return string */ public function normalize($userAgent) { if (Utils::checkIfContainsAnyOf($userAgent, array('WPDesktop', 'ZuneWP7')) || Utils::checkIfContainsAll($userAgent, array('Mozilla/5.0 (Windows NT ', ' ARM;', ' Edge/'))) { $model = WindowsPhoneHandler::getWindowsPhoneDesktopModel($userAgent); $version = WindowsPhoneHandler::getWindowsPhoneDesktopVersion($userAgent); } elseif (Utils::checkIfStartsWithAnyOf($userAgent, array('Windows Phone Ad Client', 'WindowsPhoneAdClient'))) { $model = WindowsPhoneHandler::getWindowsPhoneAdClientModel($userAgent); $version = WindowsPhoneHandler::getWindowsPhoneVersion($userAgent); } elseif (Utils::checkIfContains($userAgent, 'NativeHost')) { return $userAgent; } else { $model = WindowsPhoneHandler::getWindowsPhoneModel($userAgent); $version = WindowsPhoneHandler::getWindowsPhoneVersion($userAgent); } if ($model !== null && $version !== null) { // 'WP' is for Windows Phone $prefix = 'WP' . $version . ' ' . $model . WurflConstants::RIS_DELIMITER; return $prefix . $userAgent; } return $userAgent; }
/** * @dataProvider containsAllDataProvider * * @param string $haystack * @param array $needles * @param bool $contains */ public function testContainsAll($haystack, $needles, $contains) { $expected = Utils::checkIfContainsAll($haystack, $needles); self::assertEquals($contains, $expected); }