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 | // Generates the following messages: |
59 | // * mobile-frontend-mobile-option-MFUseDesktopSpecialWatchlistPage |
60 | // * mobile-frontend-mobile-option-MFUseDesktopSpecialWatchlistPage-description |
61 | $manager->registerFeature( new Feature( 'MFUseDesktopSpecialWatchlistPage', 'mobile-frontend', |
62 | $config->get( 'MFUseDesktopSpecialWatchlistPage' ) ) ); |
63 | $manager->useHookToRegisterExtensionOrSkinFeatures(); |
64 | return $manager; |
65 | }, |
66 | 'MobileFrontend.AMC.Manager' => static function ( MediaWikiServices $services ): MobileFrontend\Amc\Manager { |
67 | return new MobileFrontend\Amc\Manager( |
68 | $services->getService( 'MobileFrontend.Config' ), |
69 | $services->getService( 'MobileFrontend.Context' ) |
70 | ); |
71 | }, |
72 | 'MobileFrontend.AMC.UserMode' => static function ( MediaWikiServices $services ): MobileFrontend\Amc\UserMode { |
73 | return new MobileFrontend\Amc\UserMode( |
74 | $services->getService( 'MobileFrontend.AMC.Manager' ), |
75 | $services->getService( 'MobileFrontend.Context' )->getUser(), |
76 | $services->getUserOptionsManager() |
77 | ); |
78 | }, |
79 | 'MobileFrontend.AMC.Outreach' => static function ( MediaWikiServices $services ): MobileFrontend\Amc\Outreach { |
80 | return new MobileFrontend\Amc\Outreach( |
81 | $services->getService( 'MobileFrontend.AMC.UserMode' ), |
82 | $services->getService( 'MobileFrontend.AMC.Manager' ), |
83 | $services->getService( 'MobileFrontend.Context' )->getUser(), |
84 | $services->getService( 'MobileFrontend.Config' ) |
85 | ); |
86 | }, |
87 | 'MobileFrontend.Context' => static function (): MobileContext { |
88 | return MobileContext::singleton(); |
89 | } |
90 | ]; |