wikimedia/mediawiki-extensions-MobileFrontend

View on GitHub
includes/Devices/AMFDeviceDetector.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace MobileFrontend\Devices;

use MediaWiki\Request\WebRequest;

/**
 * Detect mobile and tablet devices using environment variables set by the
 * Apache Mobile Filter (AMF) module.
 *
 * @link http://wiki.apachemobilefilter.org/index.php/Main_Page
 */
class AMFDeviceDetector implements DeviceDetector {

    /**
     * @inheritDoc
     */
    public function detectDeviceProperties( WebRequest $request, array $server ) {
        $hasIsMobile = isset( $server['AMF_DEVICE_IS_MOBILE'] );
        $hasIsTablet = isset( $server['AMF_DEVICE_IS_TABLET'] );

        if ( !$hasIsMobile && !$hasIsTablet ) {
            return null;
        }

        $isMobileDevice = $hasIsMobile
            && $server['AMF_DEVICE_IS_MOBILE'] === 'true';

        $isTabletDevice = $hasIsTablet
            && $server['AMF_DEVICE_IS_TABLET'] === 'true';

        return new DeviceProperties( $isMobileDevice, $isTabletDevice );
    }
}