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);
}
}