Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
| Total | |
0.00% |
0 / 49 |
n/a |
0 / 0 |
CRAP | n/a |
0 / 0 |
||
| 1 | <?php |
| 2 | |
| 3 | use MediaWiki\Config\Config; |
| 4 | use MediaWiki\MediaWikiServices; |
| 5 | use MobileFrontend\Features\Feature; |
| 6 | use MobileFrontend\Features\FeaturesManager; |
| 7 | use MobileFrontend\Features\LoggedInUserMode; |
| 8 | use MobileFrontend\Features\StableUserMode; |
| 9 | use MobileFrontend\Features\UserModes; |
| 10 | |
| 11 | /** @phpcs-require-sorted-array */ |
| 12 | return [ |
| 13 | 'MobileFrontend.AMC.Manager' => static function ( MediaWikiServices $services ): MobileFrontend\Amc\Manager { |
| 14 | return new MobileFrontend\Amc\Manager( |
| 15 | $services->getService( 'MobileFrontend.Config' ), |
| 16 | $services->getService( 'MobileFrontend.Context' ) |
| 17 | ); |
| 18 | }, |
| 19 | 'MobileFrontend.AMC.UserMode' => static function ( MediaWikiServices $services ): MobileFrontend\Amc\UserMode { |
| 20 | return new MobileFrontend\Amc\UserMode( |
| 21 | $services->getService( 'MobileFrontend.AMC.Manager' ), |
| 22 | $services->getService( 'MobileFrontend.Context' )->getUser(), |
| 23 | $services->getUserOptionsManager() |
| 24 | ); |
| 25 | }, |
| 26 | 'MobileFrontend.Config' => static function ( MediaWikiServices $services ): Config { |
| 27 | return $services->getService( 'ConfigFactory' ) |
| 28 | ->makeConfig( 'mobilefrontend' ); |
| 29 | }, |
| 30 | 'MobileFrontend.Context' => static function (): MobileContext { |
| 31 | return MobileContext::singleton(); |
| 32 | }, |
| 33 | 'MobileFrontend.FeaturesManager' => static function ( MediaWikiServices $services ): FeaturesManager { |
| 34 | $config = $services->getService( 'MobileFrontend.Config' ); |
| 35 | |
| 36 | $manager = new FeaturesManager( |
| 37 | $services->getHookContainer(), |
| 38 | $services->getService( 'MobileFrontend.UserModes' ) |
| 39 | ); |
| 40 | // register default features |
| 41 | // maybe we can get all available features by looping through MobileFrontend.Feature.* |
| 42 | // and register it here, it would be nice to have something like |
| 43 | // $services->getAllByPrefix('MobileFrontend.Feature') |
| 44 | |
| 45 | $manager->registerFeature( new Feature( 'MFEnableWikidataDescriptions', 'mobile-frontend', |
| 46 | $config->get( 'MFEnableWikidataDescriptions' ) ) ); |
| 47 | $manager->registerFeature( new Feature( 'MFLazyLoadImages', 'mobile-frontend', |
| 48 | $config->get( 'MFLazyLoadImages' ) ) ); |
| 49 | $manager->registerFeature( new Feature( 'MFShowFirstParagraphBeforeInfobox', 'mobile-frontend', |
| 50 | $config->get( 'MFShowFirstParagraphBeforeInfobox' ) ) ); |
| 51 | $manager->registerFeature( new Feature( 'MFEnableFontChanger', 'mobile-frontend', |
| 52 | $config->get( 'MFEnableFontChanger' ) ) ); |
| 53 | $manager->registerFeature( new Feature( 'MFUseDesktopSpecialEditWatchlistPage', 'mobile-frontend', |
| 54 | $config->get( 'MFUseDesktopSpecialEditWatchlistPage' ) ) ); |
| 55 | $manager->useHookToRegisterExtensionOrSkinFeatures(); |
| 56 | return $manager; |
| 57 | }, |
| 58 | 'MobileFrontend.UserModes' => static function ( MediaWikiServices $services ): UserModes { |
| 59 | $modes = new UserModes(); |
| 60 | /** @var MobileContext $context */ |
| 61 | $context = $services->getService( 'MobileFrontend.Context' ); |
| 62 | $modes->registerMode( new StableUserMode( $context ) ); |
| 63 | $modes->registerMode( new LoggedInUserMode( $context->getUser() ) ); |
| 64 | $modes->registerMode( $services->getService( 'MobileFrontend.AMC.UserMode' ) ); |
| 65 | return $modes; |
| 66 | } |
| 67 | ]; |