Remove ugly function existence check
authorMax Semenik <maxsem.wiki@gmail.com>
Wed, 3 Oct 2018 21:43:10 +0000 (14:43 -0700)
committerMax Semenik <maxsem.wiki@gmail.com>
Thu, 4 Oct 2018 01:12:59 +0000 (18:12 -0700)
Instead, add the function into the base class.
Also, remove a pointless else.

Bug: T205040
Change-Id: I371de90b3ebef133be92b49be505db8d73f4e2c4

includes/filerepo/file/File.php
includes/media/MediaHandler.php

index a30d213..6a788b6 100644 (file)
@@ -590,14 +590,14 @@ abstract class File implements IDBAccessObject {
         */
        public function getMatchedLanguage( $userPreferredLanguage ) {
                $handler = $this->getHandler();
-               if ( $handler && method_exists( $handler, 'getMatchedLanguage' ) ) {
+               if ( $handler ) {
                        return $handler->getMatchedLanguage(
                                $userPreferredLanguage,
                                $handler->getAvailableLanguages( $this )
                        );
-               } else {
-                       return null;
                }
+
+               return null;
        }
 
        /**
index 4583632..0f820ae 100644 (file)
@@ -780,6 +780,19 @@ abstract class MediaHandler {
                return [];
        }
 
+       /**
+        * When overridden in a descendant class, returns a language code most suiting
+        *
+        * @since 1.32
+        *
+        * @param string $userPreferredLanguage Language code requesed
+        * @param string[] $availableLanguages Languages present in the file
+        * @return string|null Language code picked or null if not supported/available
+        */
+       public function getMatchedLanguage( $userPreferredLanguage, array $availableLanguages ) {
+               return null;
+       }
+
        /**
         * On file types that support renderings in multiple languages,
         * which language is used by default if unspecified.