/**
  * @param string $userAgent
  *
  * @return bool
  */
 public function canHandle($userAgent)
 {
     if (Utils::isDesktopBrowser($userAgent)) {
         return false;
     }
     return Utils::checkIfContainsAll($userAgent, array('Android', 'Opera Mini'));
 }
Beispiel #2
0
 /**
  * @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';
     }
 }
Beispiel #3
0
 /**
  * @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;
 }
Beispiel #4
0
 /**
  * @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;
 }
Beispiel #5
0
 /**
  * @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;
 }
Beispiel #6
0
 /**
  * @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);
 }