/** * Gets the RedirectResponse by switch param. * * @return \Symfony\Component\HttpFoundation\RedirectResponse */ protected function getRedirectResponseBySwitchParam() { if ($this->mustRedirect($this->deviceView->getViewType())) { // Avoid unnecessary redirects: if we need to redirect to another view, // do it in one response while setting the cookie. $redirectUrl = $this->getRedirectUrl($this->deviceView->getViewType()); } else { if (true === $this->isFullPath) { /* @var $request Request */ $request = $this->container->get('request'); $redirectUrl = $request->getUriForPath($request->getPathInfo()); $queryParams = $request->query->all(); if (array_key_exists('device_view', $queryParams)) { unset($queryParams['device_view']); } if (sizeof($queryParams) > 0) { $redirectUrl .= '?' . Request::normalizeQueryString(http_build_query($queryParams)); } } else { $redirectUrl = $this->getCurrentHost(); } } return $this->deviceView->getRedirectResponseBySwitchParam($redirectUrl); }