Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 58 |
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 | |
31 | $manager = new FeaturesManager( |
32 | $services->getHookContainer(), |
33 | $services->getService( 'MobileFrontend.UserModes' ) |
34 | ); |
35 | // register default features |
36 | // maybe we can get all available features by looping through MobileFrontend.Feature.* |
37 | // and register it here, it would be nice to have something like |
38 | // $services->getAllByPrefix('MobileFrontend.Feature') |
39 | |
40 | // Generates the following messages: |
41 | // * mobile-frontend-mobile-option-MFEnableWikidataDescriptions |
42 | // * mobile-frontend-mobile-option-MFEnableWikidataDescriptions-description |
43 | $manager->registerFeature( new Feature( 'MFEnableWikidataDescriptions', 'mobile-frontend', |
44 | $config->get( 'MFEnableWikidataDescriptions' ) ) ); |
45 | // Generates the following messages: |
46 | // * mobile-frontend-mobile-option-MFLazyLoadImages |
47 | // * mobile-frontend-mobile-option-MFLazyLoadImages-description |
48 | $manager->registerFeature( new Feature( 'MFLazyLoadImages', 'mobile-frontend', |
49 | $config->get( 'MFLazyLoadImages' ) ) ); |
50 | // Generates the following messages: |
51 | // * mobile-frontend-mobile-option-MFShowFirstParagraphBeforeInfobox |
52 | // * mobile-frontend-mobile-option-MFShowFirstParagraphBeforeInfobox-description |
53 | $manager->registerFeature( new Feature( 'MFShowFirstParagraphBeforeInfobox', 'mobile-frontend', |
54 | $config->get( 'MFShowFirstParagraphBeforeInfobox' ) ) ); |
55 | // Generates the following messages: |
56 | // * mobile-frontend-mobile-option-MFEnableFontChanger |
57 | // * mobile-frontend-mobile-option-MFEnableFontChanger-description |
58 | $manager->registerFeature( new Feature( 'MFEnableFontChanger', 'mobile-frontend', |
59 | $config->get( 'MFEnableFontChanger' ) ) ); |
60 | $manager->registerFeature( new Feature( 'MFUseDesktopSpecialEditWatchlistPage', 'mobile-frontend', |
61 | $config->get( 'MFUseDesktopSpecialEditWatchlistPage' ) ) ); |
62 | $manager->useHookToRegisterExtensionOrSkinFeatures(); |
63 | return $manager; |
64 | }, |
65 | 'MobileFrontend.AMC.Manager' => static function ( MediaWikiServices $services ): MobileFrontend\Amc\Manager { |
66 | return new MobileFrontend\Amc\Manager( |
67 | $services->getService( 'MobileFrontend.Config' ), |
68 | $services->getService( 'MobileFrontend.Context' ) |
69 | ); |
70 | }, |
71 | 'MobileFrontend.AMC.UserMode' => static function ( MediaWikiServices $services ): MobileFrontend\Amc\UserMode { |
72 | return new MobileFrontend\Amc\UserMode( |
73 | $services->getService( 'MobileFrontend.AMC.Manager' ), |
74 | $services->getService( 'MobileFrontend.Context' )->getUser(), |
75 | $services->getUserOptionsManager() |
76 | ); |
77 | }, |
78 | 'MobileFrontend.AMC.Outreach' => static function ( MediaWikiServices $services ): MobileFrontend\Amc\Outreach { |
79 | return new MobileFrontend\Amc\Outreach( |
80 | $services->getService( 'MobileFrontend.AMC.UserMode' ), |
81 | $services->getService( 'MobileFrontend.AMC.Manager' ), |
82 | $services->getService( 'MobileFrontend.Context' )->getUser(), |
83 | $services->getService( 'MobileFrontend.Config' ) |
84 | ); |
85 | }, |
86 | 'MobileFrontend.Context' => static function (): MobileContext { |
87 | return MobileContext::singleton(); |
88 | } |
89 | ]; |