WhichBrowser\Analyser\Derive::deriveBasedOnDeviceFlag PHP Method

deriveBasedOnDeviceFlag() private method

    private function deriveBasedOnDeviceFlag()
    {
        $flag = $this->data->device->flag;
        if ($flag == Constants\Flag::NOKIAX) {
            $this->data->os->name = 'Nokia X Platform';
            $this->data->os->family = new Family(['name' => 'Android']);
            unset($this->data->os->version);
            unset($this->data->device->flag);
        }
        if ($flag == Constants\Flag::FIREOS) {
            $this->data->os->name = 'FireOS';
            $this->data->os->family = new Family(['name' => 'Android']);
            if (isset($this->data->os->version) && isset($this->data->os->version->value)) {
                switch ($this->data->os->version->value) {
                    case '2.3.3':
                    case '2.3.4':
                        $this->data->os->version = new Version(['value' => '1']);
                        break;
                    case '4.0.3':
                        $this->data->os->version = new Version(['value' => '2']);
                        break;
                    case '4.2.2':
                        $this->data->os->version = new Version(['value' => '3']);
                        break;
                    case '4.4.2':
                        $this->data->os->version = new Version(['value' => '4']);
                        break;
                    case '4.4.3':
                        $this->data->os->version = new Version(['value' => '4.5']);
                        break;
                    case '5.1.1':
                        $this->data->os->version = new Version(['value' => '5']);
                        break;
                    default:
                        unset($this->data->os->version);
                        break;
                }
            }
            if ($this->data->isBrowser('Chrome')) {
                $this->data->browser->reset();
                $this->data->browser->using = new Using(['name' => 'Amazon WebView']);
            }
            if ($this->data->browser->isUsing('Chromium WebView')) {
                $this->data->browser->using = new Using(['name' => 'Amazon WebView']);
            }
            unset($this->data->device->flag);
        }
        if ($flag == Constants\Flag::GOOGLETV) {
            $this->data->os->name = 'Google TV';
            $this->data->os->family = new Family(['name' => 'Android']);
            unset($this->data->os->version);
            unset($this->data->device->flag);
        }
        if ($flag == Constants\Flag::ANDROIDTV) {
            $this->data->os->name = 'Android TV';
            $this->data->os->family = new Family(['name' => 'Android']);
            unset($this->data->device->flag);
            unset($this->data->device->series);
        }
        if ($flag == Constants\Flag::ANDROIDWEAR) {
            $this->data->os->name = 'Android Wear';
            $this->data->os->family = new Family(['name' => 'Android']);
            unset($this->data->os->version);
            unset($this->data->device->flag);
            if ($this->data->browser->isUsing('Chrome Content Shell')) {
                $this->data->browser->name = 'Wear Internet Browser';
                $this->data->browser->using = null;
            }
        }
        if ($flag == Constants\Flag::GOOGLEGLASS) {
            $this->data->os->family = new Family(['name' => 'Android']);
            unset($this->data->os->name);
            unset($this->data->os->version);
            unset($this->data->device->flag);
        }
        if ($flag == Constants\Flag::UIQ) {
            unset($this->data->device->flag);
            if (!$this->data->isOs('UIQ')) {
                $this->data->os->name = 'UIQ';
                unset($this->data->os->version);
            }
        }
        if ($flag == Constants\Flag::S60) {
            unset($this->data->device->flag);
            if (!$this->data->isOs('Series60')) {
                $this->data->os->name = 'Series60';
                unset($this->data->os->version);
            }
        }
        if ($flag == Constants\Flag::MOAPS) {
            unset($this->data->device->flag);
            $this->data->os->name = 'MOAP(S)';
            unset($this->data->os->version);
        }
    }