From fea91b03a577086196fb8307223df979ee528902 Mon Sep 17 00:00:00 2001
From: project update bot
 <66574-Project-Update-Bot@users.noreply.drupalcode.org>
Date: Mon, 17 Feb 2025 15:36:10 +0000
Subject: [PATCH] Issue #3483664: Automated Drupal 11 compatibility fixes for
 message_subscribe

---
 message_subscribe.info.yml                    |  2 +-
 .../views.view.subscribe_node_email.yml       |  1 -
 ...ews.view.subscribe_taxonomy_term_email.yml |  1 -
 .../views.view.subscribe_user_email.yml       |  1 -
 .../message_subscribe_email.info.yml          |  2 +-
 .../message_subscribe_email.module            |  2 +-
 .../src/EventSubscriber/FlagEvents.php        |  2 +-
 .../message_subscribe_example.info.yml        |  2 +-
 .../optional/views.view.subscribe_node.yml    |  3 +-
 .../views.view.subscribe_taxonomy_term.yml    |  1 -
 .../optional/views.view.subscribe_user.yml    |  3 +-
 .../message_subscribe_ui.info.yml             |  2 +-
 .../message_subscribe_ui.services.yml         |  4 +++
 .../src/Controller/SubscriptionController.php | 29 +++++++++++++++----
 .../src/Functional/SubscriptionsBlockTest.php |  4 +--
 src/Subscribers.php                           |  2 +-
 src/SubscribersInterface.php                  |  2 +-
 .../message_subscribe_test.info.yml           |  2 +-
 .../message_subscribe_test.module             |  5 ++--
 tests/src/Kernel/ContextTest.php              |  4 +--
 tests/src/Kernel/MessageSubscribeTestBase.php |  1 -
 21 files changed, 46 insertions(+), 29 deletions(-)
 create mode 100644 message_subscribe_ui/message_subscribe_ui.services.yml

diff --git a/message_subscribe.info.yml b/message_subscribe.info.yml
index cef3d29..aeee937 100644
--- a/message_subscribe.info.yml
+++ b/message_subscribe.info.yml
@@ -1,6 +1,6 @@
 name: 'Message Subscribe'
 description: 'Subscribe API for the Message and Message notify modules.'
-core_version_requirement: ^9 || ^10
+core_version_requirement: ^9 || ^10 || ^11
 package: Message
 type: module
 configure: message_subscribe.admin_settings
diff --git a/message_subscribe_email/config/optional/views.view.subscribe_node_email.yml b/message_subscribe_email/config/optional/views.view.subscribe_node_email.yml
index 345167a..8b8814f 100644
--- a/message_subscribe_email/config/optional/views.view.subscribe_node_email.yml
+++ b/message_subscribe_email/config/optional/views.view.subscribe_node_email.yml
@@ -330,7 +330,6 @@ display:
           default_argument_type: fixed
           default_argument_options:
             argument: ''
-          default_argument_skip_url: false
           summary_options:
             base_path: ''
             count: true
diff --git a/message_subscribe_email/config/optional/views.view.subscribe_taxonomy_term_email.yml b/message_subscribe_email/config/optional/views.view.subscribe_taxonomy_term_email.yml
index 3be04e6..13c06e9 100644
--- a/message_subscribe_email/config/optional/views.view.subscribe_taxonomy_term_email.yml
+++ b/message_subscribe_email/config/optional/views.view.subscribe_taxonomy_term_email.yml
@@ -303,7 +303,6 @@ display:
           default_argument_type: fixed
           default_argument_options:
             argument: ''
-          default_argument_skip_url: false
           summary_options:
             base_path: ''
             count: true
diff --git a/message_subscribe_email/config/optional/views.view.subscribe_user_email.yml b/message_subscribe_email/config/optional/views.view.subscribe_user_email.yml
index 1598039..de69924 100644
--- a/message_subscribe_email/config/optional/views.view.subscribe_user_email.yml
+++ b/message_subscribe_email/config/optional/views.view.subscribe_user_email.yml
@@ -311,7 +311,6 @@ display:
           default_argument_type: fixed
           default_argument_options:
             argument: ''
-          default_argument_skip_url: false
           summary_options:
             base_path: ''
             count: true
diff --git a/message_subscribe_email/message_subscribe_email.info.yml b/message_subscribe_email/message_subscribe_email.info.yml
index 535e9ec..3dc33bf 100644
--- a/message_subscribe_email/message_subscribe_email.info.yml
+++ b/message_subscribe_email/message_subscribe_email.info.yml
@@ -1,6 +1,6 @@
 name: 'Message subscribe email'
 description: 'Provides email functionality for message subscribe.'
-core_version_requirement: ^9 || ^10
+core_version_requirement: ^9 || ^10 || ^11
 package: Message
 dependencies:
   - message_subscribe:message_subscribe_ui
diff --git a/message_subscribe_email/message_subscribe_email.module b/message_subscribe_email/message_subscribe_email.module
index 025b8bd..230e066 100644
--- a/message_subscribe_email/message_subscribe_email.module
+++ b/message_subscribe_email/message_subscribe_email.module
@@ -14,7 +14,7 @@ use Drupal\flag\FlagInterface;
 /**
  * Implements hook_flag_action_access().
  */
-function message_subscribe_email_flag_action_access($action, FlagInterface $flag, AccountInterface $account, EntityInterface $flaggable = NULL) {
+function message_subscribe_email_flag_action_access($action, FlagInterface $flag, AccountInterface $account, ?EntityInterface $flaggable = NULL) {
   // The 'unflag' action is always allowed here, so only check 'flag'.
   $prefix = \Drupal::config('message_subscribe_email.settings')->get('flag_prefix') . '_';
   if ($action === 'flag' && $flaggable && $flaggable->id() && strpos($flag->id(), $prefix) === 0) {
diff --git a/message_subscribe_email/src/EventSubscriber/FlagEvents.php b/message_subscribe_email/src/EventSubscriber/FlagEvents.php
index 2904c0d..abda095 100644
--- a/message_subscribe_email/src/EventSubscriber/FlagEvents.php
+++ b/message_subscribe_email/src/EventSubscriber/FlagEvents.php
@@ -46,7 +46,7 @@ class FlagEvents implements EventSubscriberInterface {
   /**
    * {@inheritdoc}
    */
-  public static function getSubscribedEvents() {
+  public static function getSubscribedEvents(): array {
     $events[Flag::ENTITY_FLAGGED] = ['onFlag', 50];
     $events[Flag::ENTITY_UNFLAGGED] = ['onUnflag', 50];
     return $events;
diff --git a/message_subscribe_example/message_subscribe_example.info.yml b/message_subscribe_example/message_subscribe_example.info.yml
index 8ea071e..e44e6bf 100644
--- a/message_subscribe_example/message_subscribe_example.info.yml
+++ b/message_subscribe_example/message_subscribe_example.info.yml
@@ -1,7 +1,7 @@
 name: Message Subscribe Example
 type: module
 description: "Comprehensive example of Message, Message Notify, and Message Subscribe."
-core_version_requirement: ^9 || ^10
+core_version_requirement: ^9 || ^10 || ^11
 package: Message
 dependencies:
   - message:message
diff --git a/message_subscribe_ui/config/optional/views.view.subscribe_node.yml b/message_subscribe_ui/config/optional/views.view.subscribe_node.yml
index 1d00b50..37f6e12 100644
--- a/message_subscribe_ui/config/optional/views.view.subscribe_node.yml
+++ b/message_subscribe_ui/config/optional/views.view.subscribe_node.yml
@@ -201,7 +201,7 @@ display:
           plugin_id: flag_link
       filters:
         status:
-          value: '1' 
+          value: '1'
           table: node_field_data
           field: status
           plugin_id: boolean
@@ -268,7 +268,6 @@ display:
           default_argument_type: fixed
           default_argument_options:
             argument: ''
-          default_argument_skip_url: false
           summary_options:
             base_path: ''
             count: true
diff --git a/message_subscribe_ui/config/optional/views.view.subscribe_taxonomy_term.yml b/message_subscribe_ui/config/optional/views.view.subscribe_taxonomy_term.yml
index 18213fe..f1573a1 100644
--- a/message_subscribe_ui/config/optional/views.view.subscribe_taxonomy_term.yml
+++ b/message_subscribe_ui/config/optional/views.view.subscribe_taxonomy_term.yml
@@ -241,7 +241,6 @@ display:
           default_argument_type: fixed
           default_argument_options:
             argument: ''
-          default_argument_skip_url: false
           summary_options:
             base_path: ''
             count: true
diff --git a/message_subscribe_ui/config/optional/views.view.subscribe_user.yml b/message_subscribe_ui/config/optional/views.view.subscribe_user.yml
index d71e647..83ec71d 100644
--- a/message_subscribe_ui/config/optional/views.view.subscribe_user.yml
+++ b/message_subscribe_ui/config/optional/views.view.subscribe_user.yml
@@ -191,7 +191,7 @@ display:
           plugin_id: flag_link
       filters:
         status:
-          value: '1' 
+          value: '1'
           table: users_field_data
           field: status
           plugin_id: boolean
@@ -249,7 +249,6 @@ display:
           default_argument_type: fixed
           default_argument_options:
             argument: ''
-          default_argument_skip_url: false
           summary_options:
             base_path: ''
             count: true
diff --git a/message_subscribe_ui/message_subscribe_ui.info.yml b/message_subscribe_ui/message_subscribe_ui.info.yml
index 1961254..74f62b8 100644
--- a/message_subscribe_ui/message_subscribe_ui.info.yml
+++ b/message_subscribe_ui/message_subscribe_ui.info.yml
@@ -1,6 +1,6 @@
 name: 'Message subscribe UI'
 description: 'Message subscribe UI'
-core_version_requirement: ^9 || ^10
+core_version_requirement: ^9 || ^10 || ^11
 package: Message
 dependencies:
   - message_subscribe:message_subscribe
diff --git a/message_subscribe_ui/message_subscribe_ui.services.yml b/message_subscribe_ui/message_subscribe_ui.services.yml
new file mode 100644
index 0000000..db6d02f
--- /dev/null
+++ b/message_subscribe_ui/message_subscribe_ui.services.yml
@@ -0,0 +1,4 @@
+services:
+  logger.channel.message_subscribe_ui:
+    parent: logger.channel_base
+    arguments: ['message_subscribe_ui']
\ No newline at end of file
diff --git a/message_subscribe_ui/src/Controller/SubscriptionController.php b/message_subscribe_ui/src/Controller/SubscriptionController.php
index 094709f..2a72962 100644
--- a/message_subscribe_ui/src/Controller/SubscriptionController.php
+++ b/message_subscribe_ui/src/Controller/SubscriptionController.php
@@ -14,6 +14,7 @@ use Drupal\message_subscribe\SubscribersInterface;
 use Drupal\user\UserInterface;
 use Drupal\views\Views;
 use Symfony\Component\DependencyInjection\ContainerInterface;
+use Psr\Log\LoggerInterface;
 
 /**
  * Default controller for the message_subscribe_ui module.
@@ -48,6 +49,13 @@ final class SubscriptionController extends ControllerBase {
    */
   protected $subscribers;
 
+  /**
+   * The logger service.
+   *
+   * @var \Psr\Log\LoggerInterface
+   */
+  protected $logger;
+
   /**
    * Construct the subscriptions controller.
    *
@@ -59,12 +67,15 @@ final class SubscriptionController extends ControllerBase {
    *   The message subscribers service.
    * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
    *   The config factory service.
+   * @param \Psr\Log\LoggerInterface $logger
+   *   The logger service.
    */
-  public function __construct(AccountProxyInterface $current_user, FlagServiceInterface $flag_service, SubscribersInterface $subscribers, ConfigFactoryInterface $config_factory) {
+  public function __construct(AccountProxyInterface $current_user, FlagServiceInterface $flag_service, SubscribersInterface $subscribers, ConfigFactoryInterface $config_factory, LoggerInterface $logger) {
     $this->currentUser = $current_user;
     $this->flagService = $flag_service;
     $this->subscribers = $subscribers;
     $this->config = $config_factory->get('message_subscribe.settings');
+    $this->logger = $logger;
   }
 
   /**
@@ -75,7 +86,8 @@ final class SubscriptionController extends ControllerBase {
       $container->get('current_user'),
       $container->get('flag'),
       $container->get('message_subscribe.subscribers'),
-      $container->get('config.factory')
+      $container->get('config.factory'),
+      $container->get('logger.channel.message_subscribe_ui'),
     );
   }
 
@@ -90,7 +102,7 @@ final class SubscriptionController extends ControllerBase {
    * @return \Drupal\Core\Access\AccessResultInterface
    *   Returns TRUE if access is granted.
    */
-  public function tabAccess(AccountInterface $user, FlagInterface $flag = NULL) {
+  public function tabAccess(AccountInterface $user, ?FlagInterface $flag = NULL) {
     if (!$flag) {
       // We are inside /message-subscribe so get the first flag.
       $flags = $this->subscribers->getFlags();
@@ -142,7 +154,7 @@ final class SubscriptionController extends ControllerBase {
    * @return array
    *   A render array.
    */
-  public function tab(UserInterface $user, FlagInterface $flag = NULL) {
+  public function tab(UserInterface $user, ?FlagInterface $flag = NULL) {
     if (!$flag) {
       // We are inside /message-subscribe so get the first flag.
       $flags = $this->subscribers->getFlags();
@@ -155,7 +167,14 @@ final class SubscriptionController extends ControllerBase {
       $result['#cache']['tags'] = $flag->getCacheTags() + $view->getCacheTags();
     }
     catch (MessageSubscribeException $e) {
-      watchdog_exception('message_subscribe_ui', $e);
+      if (version_compare(\Drupal::VERSION, '10.1.0', '<')) {
+        // @phpstan-ignore-next-line
+        watchdog_exception('message_subscribe_ui', $e);
+      }
+      else {
+        $this->logger->error($e->getMessage());
+      }
+
       $result['#markup'] = $this->t('There was an exception displaying the subscriptions for this user. View recently logged messages for more information.');
     }
 
diff --git a/message_subscribe_ui/tests/src/Functional/SubscriptionsBlockTest.php b/message_subscribe_ui/tests/src/Functional/SubscriptionsBlockTest.php
index 4ace6d4..31cbfe0 100644
--- a/message_subscribe_ui/tests/src/Functional/SubscriptionsBlockTest.php
+++ b/message_subscribe_ui/tests/src/Functional/SubscriptionsBlockTest.php
@@ -4,7 +4,7 @@ namespace Drupal\Tests\message_subscribe_ui\Functional;
 
 use Drupal\entity_test\FieldStorageDefinition;
 use Drupal\Tests\BrowserTestBase;
-use Drupal\Tests\field\Traits\EntityReferenceTestTrait;
+use Drupal\Tests\field\Traits\EntityReferenceFieldCreationTrait;
 use Drupal\Tests\taxonomy\Traits\TaxonomyTestTrait;
 
 /**
@@ -15,7 +15,7 @@ use Drupal\Tests\taxonomy\Traits\TaxonomyTestTrait;
 class SubscriptionsBlockTest extends BrowserTestBase {
 
   use TaxonomyTestTrait;
-  use EntityReferenceTestTrait;
+  use EntityReferenceFieldCreationTrait;
 
   /**
    * Admin user.
diff --git a/src/Subscribers.php b/src/Subscribers.php
index 28148aa..b73b04c 100644
--- a/src/Subscribers.php
+++ b/src/Subscribers.php
@@ -374,7 +374,7 @@ class Subscribers implements SubscribersInterface {
   /**
    * {@inheritdoc}
    */
-  public function getFlags($entity_type = NULL, $bundle = NULL, AccountInterface $account = NULL) {
+  public function getFlags($entity_type = NULL, $bundle = NULL, ?AccountInterface $account = NULL) {
     $flags = $this->flagService->getAllFlags($entity_type, $bundle);
     if ($account) {
       // Filter flags down to ones the account has action access for.
diff --git a/src/SubscribersInterface.php b/src/SubscribersInterface.php
index eb1917c..b4cee89 100644
--- a/src/SubscribersInterface.php
+++ b/src/SubscribersInterface.php
@@ -134,6 +134,6 @@ interface SubscribersInterface {
    *
    * @see \Drupal\flag\FlagServiceInterface::getAllFlags()
    */
-  public function getFlags($entity_type = NULL, $bundle = NULL, AccountInterface $account = NULL);
+  public function getFlags($entity_type = NULL, $bundle = NULL, ?AccountInterface $account = NULL);
 
 }
diff --git a/tests/modules/message_subscribe_test/message_subscribe_test.info.yml b/tests/modules/message_subscribe_test/message_subscribe_test.info.yml
index eebc26a..1a152d3 100644
--- a/tests/modules/message_subscribe_test/message_subscribe_test.info.yml
+++ b/tests/modules/message_subscribe_test/message_subscribe_test.info.yml
@@ -1,7 +1,7 @@
 name: 'Message subscribe test module'
 description: 'Functionality to assist message subscribe testing.'
 type: module
-core_version_requirement: ^8 || ^9
+core_version_requirement: ^9 || ^10 || ^11
 dependencies:
   - message_subscribe:message_subscribe
 package: Testing
diff --git a/tests/modules/message_subscribe_test/message_subscribe_test.module b/tests/modules/message_subscribe_test/message_subscribe_test.module
index 9001548..8813940 100644
--- a/tests/modules/message_subscribe_test/message_subscribe_test.module
+++ b/tests/modules/message_subscribe_test/message_subscribe_test.module
@@ -41,6 +41,7 @@ function message_subscribe_test_message_subscribe_get_subscribers_alter(array &$
  * Implements hook_message_subscribe_message_alter().
  */
 function message_subscribe_test_message_subscribe_message_alter(MessageInterface $message, DeliveryCandidateInterface $delivery_candidate) {
-  $calls = \Drupal::state()->get('message_subscribe_test.message_alter_hook_called', 0);
-  \Drupal::state()->set('message_subscribe_test.message_alter_hook_called', $calls + 1);
+  $state = \Drupal::state();
+  $calls = $state->get('message_subscribe_test.message_alter_hook_called', 0);
+  $state->set('message_subscribe_test.message_alter_hook_called', $calls + 1);
 }
diff --git a/tests/src/Kernel/ContextTest.php b/tests/src/Kernel/ContextTest.php
index b6bd844..2cef6de 100644
--- a/tests/src/Kernel/ContextTest.php
+++ b/tests/src/Kernel/ContextTest.php
@@ -10,7 +10,7 @@ use Drupal\og\Og;
 use Drupal\og\OgGroupAudienceHelper;
 use Drupal\taxonomy\Entity\Term;
 use Drupal\taxonomy\Entity\Vocabulary;
-use Drupal\Tests\field\Traits\EntityReferenceTestTrait;
+use Drupal\Tests\field\Traits\EntityReferenceFieldCreationTrait;
 
 /**
  * Test getting context from entity.
@@ -21,7 +21,7 @@ use Drupal\Tests\field\Traits\EntityReferenceTestTrait;
 class ContextTest extends MessageSubscribeTestBase {
 
   use CommentTestTrait;
-  use EntityReferenceTestTrait;
+  use EntityReferenceFieldCreationTrait;
 
   /**
    * {@inheritdoc}
diff --git a/tests/src/Kernel/MessageSubscribeTestBase.php b/tests/src/Kernel/MessageSubscribeTestBase.php
index 4bda66b..2f82d26 100644
--- a/tests/src/Kernel/MessageSubscribeTestBase.php
+++ b/tests/src/Kernel/MessageSubscribeTestBase.php
@@ -54,7 +54,6 @@ abstract class MessageSubscribeTestBase extends KernelTestBase {
   public function setUp(): void {
     parent::setUp();
 
-    $this->installSchema('system', ['sequences']);
     $this->installSchema('flag', ['flag_counts']);
     $this->installEntitySchema('flagging');
     $this->installEntitySchema('message');
-- 
GitLab