Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 56 |
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\BetaUserMode; |
6 | use MobileFrontend\Features\Feature; |
7 | use MobileFrontend\Features\FeaturesManager; |
8 | use MobileFrontend\Features\LoggedInUserMode; |
9 | use MobileFrontend\Features\StableUserMode; |
10 | use MobileFrontend\Features\UserModes; |
11 | |
12 | return [ |
13 | 'MobileFrontend.Config' => static function ( MediaWikiServices $services ): Config { |
14 | return $services->getService( 'ConfigFactory' ) |
15 | ->makeConfig( 'mobilefrontend' ); |
16 | }, |
17 | |
18 | 'MobileFrontend.UserModes' => static function ( MediaWikiServices $services ): UserModes { |
19 | $modes = new UserModes(); |
20 | /** @var MobileContext $context */ |
21 | $context = $services->getService( 'MobileFrontend.Context' ); |
22 | $modes->registerMode( new StableUserMode( $context ) ); |
23 | $modes->registerMode( new BetaUserMode( $context ) ); |
24 | $modes->registerMode( new LoggedInUserMode( $context->getUser() ) ); |
25 | $modes->registerMode( $services->getService( 'MobileFrontend.AMC.UserMode' ) ); |
26 | return $modes; |
27 | }, |
28 | 'MobileFrontend.FeaturesManager' => static function ( MediaWikiServices $services ): FeaturesManager { |
29 | $config = $services->getService( 'MobileFrontend.Config' ); |
30 | $userModes = $services->getService( 'MobileFrontend.UserModes' ); |
31 | |
32 | $manager = new FeaturesManager( $userModes ); |
33 | // register default features |
34 | // maybe we can get all available features by looping through MobileFrontend.Feature.* |
35 | // and register it here, it would be nice to have something like |
36 | // $services->getAllByPrefix('MobileFrontend.Feature') |
37 | |
38 | // Generates the following messages: |
39 | // * mobile-frontend-mobile-option-MFEnableWikidataDescriptions |
40 | // * mobile-frontend-mobile-option-MFEnableWikidataDescriptions-description |
41 | $manager->registerFeature( new Feature( 'MFEnableWikidataDescriptions', 'mobile-frontend', |
42 | $config->get( 'MFEnableWikidataDescriptions' ) ) ); |
43 | // Generates the following messages: |
44 | // * mobile-frontend-mobile-option-MFLazyLoadImages |
45 | // * mobile-frontend-mobile-option-MFLazyLoadImages-description |
46 | $manager->registerFeature( new Feature( 'MFLazyLoadImages', 'mobile-frontend', |
47 | $config->get( 'MFLazyLoadImages' ) ) ); |
48 | // Generates the following messages: |
49 | // * mobile-frontend-mobile-option-MFShowFirstParagraphBeforeInfobox |
50 | // * mobile-frontend-mobile-option-MFShowFirstParagraphBeforeInfobox-description |
51 | $manager->registerFeature( new Feature( 'MFShowFirstParagraphBeforeInfobox', 'mobile-frontend', |
52 | $config->get( 'MFShowFirstParagraphBeforeInfobox' ) ) ); |
53 | // Generates the following messages: |
54 | // * mobile-frontend-mobile-option-MFEnableFontChanger |
55 | // * mobile-frontend-mobile-option-MFEnableFontChanger-description |
56 | $manager->registerFeature( new Feature( 'MFEnableFontChanger', 'mobile-frontend', |
57 | $config->get( 'MFEnableFontChanger' ) ) ); |
58 | $manager->registerFeature( new Feature( 'MFUseDesktopSpecialEditWatchlistPage', 'mobile-frontend', |
59 | $config->get( 'MFUseDesktopSpecialEditWatchlistPage' ) ) ); |
60 | $manager->useHookToRegisterExtensionOrSkinFeatures(); |
61 | return $manager; |
62 | }, |
63 | 'MobileFrontend.AMC.Manager' => static function ( MediaWikiServices $services ): MobileFrontend\Amc\Manager { |
64 | return new MobileFrontend\Amc\Manager( |
65 | $services->getService( 'MobileFrontend.Config' ), |
66 | $services->getService( 'MobileFrontend.Context' ) |
67 | ); |
68 | }, |
69 | 'MobileFrontend.AMC.UserMode' => static function ( MediaWikiServices $services ): MobileFrontend\Amc\UserMode { |
70 | return new MobileFrontend\Amc\UserMode( |
71 | $services->getService( 'MobileFrontend.AMC.Manager' ), |
72 | $services->getService( 'MobileFrontend.Context' )->getUser(), |
73 | $services->getUserOptionsManager() |
74 | ); |
75 | }, |
76 | 'MobileFrontend.AMC.Outreach' => static function ( MediaWikiServices $services ): MobileFrontend\Amc\Outreach { |
77 | return new MobileFrontend\Amc\Outreach( |
78 | $services->getService( 'MobileFrontend.AMC.UserMode' ), |
79 | $services->getService( 'MobileFrontend.AMC.Manager' ), |
80 | $services->getService( 'MobileFrontend.Context' )->getUser(), |
81 | $services->getService( 'MobileFrontend.Config' ) |
82 | ); |
83 | }, |
84 | 'MobileFrontend.Context' => static function (): MobileContext { |
85 | return MobileContext::singleton(); |
86 | } |
87 | ]; |