Use dependabot multi-directory configuration for Android package updates (#8048)

Follow up to https://github.com/flutter/packages/pull/8036#issuecomment-2465781953.

[Multi-directory config](https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#directories) allows duplicated dependabot configs can be removed in favor of one that specifies multiple directories.  Update Android packages so the same gradle dependencies can be updated all at once across packages.

> The directories option in the dependabot.yml file allows you to apply Dependabot updates to multiple directories at the same time.

It's unclear whether this is a good idea.
> I'm a bit skeptical that grouping all the non-example ones together will be easier in practice, since usually some plugins are fine and some need changes, but I know the current system has some issues too.

https://github.com/flutter/packages/pull/8036#pullrequestreview-2424660637

The consensus seems to be we should try it, and revert or adjust if it makes the current system worse.

Part of https://github.com/flutter/flutter/issues/148098
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 32e197c..22d824f 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -17,6 +17,7 @@
       - "team: infra"
       - "autosubmit"
 
+  # Android example apps.
   - package-ecosystem: "gradle"
     directories:
       - /packages/animations/example/android/app
@@ -74,10 +75,31 @@
       - dependency-name: "*"
         update-types: ["version-update:semver-minor", "version-update:semver-patch"]
 
+  # Android packages (excluding example apps).
   - package-ecosystem: "gradle"
-    directory: "/packages/camera/camera_android/android"
+    directories:
+      - /packages/camera/camera_android/android
+      - /packages/camera/camera_android_camerax/android
+      - /packages/espresso/android
+      - /packages/file_selector/file_selector_android/android
+      - /packages/flutter_plugin_android_lifecycle/android
+      - /packages/google_maps_flutter/google_maps_flutter_android/android
+      - /packages/google_sign_in/google_sign_in_android/android
+      - /packages/in_app_purchase/in_app_purchase_android/android
+      - /packages/interactive_media_ads/android
+      - /packages/image_picker/image_picker/android
+      - /packages/image_picker/image_picker_android/android
+      - /packages/local_auth/local_auth_android/android
+      - /packages/path_provider/path_provider_android/android
+      - /packages/pigeon/platform_tests/test_plugin/android
+      - /packages/pigeon/platform_tests/alternate_language_test_plugin/android
+      - /packages/quick_actions/quick_actions_android/android
+      - /packages/shared_preferences/shared_preferences_android/android
+      - /packages/url_launcher/url_launcher_android/android
+      - /packages/video_player/video_player_android/android
+      - /packages/webview_flutter/webview_flutter_android/android
     commit-message:
-      prefix: "[camera]"
+      prefix: "[gradle]"
     schedule:
       interval: "weekly"
     open-pull-requests-limit: 10
@@ -93,342 +115,3 @@
       - dependency-name: "org.robolectric:*"
         update-types: ["version-update:semver-minor", "version-update:semver-patch"]
 
-  - package-ecosystem: "gradle"
-    directory: "/packages/camera/camera_android_camerax/android"
-    commit-message:
-      prefix: "[camera]"
-    schedule:
-      interval: "weekly"
-    open-pull-requests-limit: 10
-    ignore:
-      - dependency-name: "com.android.tools.build:gradle"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "junit:junit"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.mockito:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "androidx.test:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.robolectric:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
-  - package-ecosystem: "gradle"
-    directory: "/packages/espresso/android"
-    commit-message:
-      prefix: "[espresso]"
-    schedule:
-      interval: "weekly"
-    open-pull-requests-limit: 10
-    ignore:
-      - dependency-name: "com.android.tools.build:gradle"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "junit:junit"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.mockito:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "androidx.test:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.robolectric:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
-  - package-ecosystem: "gradle"
-    directory: "/packages/file_selector/file_selector_android/android"
-    commit-message:
-      prefix: "[file_selector]"
-    schedule:
-      interval: "weekly"
-    open-pull-requests-limit: 10
-    ignore:
-      - dependency-name: "com.android.tools.build:gradle"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "junit:junit"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.mockito:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "androidx.test:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.robolectric:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
-  - package-ecosystem: "gradle"
-    directory: "/packages/flutter_plugin_android_lifecycle/android"
-    commit-message:
-      prefix: "[lifecycle]"
-    schedule:
-      interval: "weekly"
-    open-pull-requests-limit: 10
-    ignore:
-      - dependency-name: "com.android.tools.build:gradle"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "junit:junit"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.mockito:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "androidx.test:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.robolectric:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
-  - package-ecosystem: "gradle"
-    directory: "/packages/google_maps_flutter/google_maps_flutter_android/android"
-    commit-message:
-      prefix: "[google_maps]"
-    schedule:
-      interval: "weekly"
-    open-pull-requests-limit: 10
-    ignore:
-      - dependency-name: "com.android.tools.build:gradle"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "junit:junit"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.mockito:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "androidx.test:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.robolectric:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
-  - package-ecosystem: "gradle"
-    directory: "/packages/google_sign_in/google_sign_in_android/android"
-    commit-message:
-      prefix: "[sign_in]"
-    schedule:
-      interval: "weekly"
-    open-pull-requests-limit: 10
-    ignore:
-      - dependency-name: "com.android.tools.build:gradle"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "junit:junit"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.mockito:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "androidx.test:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.robolectric:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
-  - package-ecosystem: "gradle"
-    directory: "/packages/in_app_purchase/in_app_purchase_android/android"
-    commit-message:
-      prefix: "[in_app_pur]"
-    schedule:
-      interval: "weekly"
-    open-pull-requests-limit: 10
-    ignore:
-      - dependency-name: "com.android.tools.build:gradle"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "junit:junit"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.mockito:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "androidx.test:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.robolectric:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
-  - package-ecosystem: "gradle"
-    directory: "/packages/interactive_media_ads/android"
-    commit-message:
-      prefix: "[interactive_media_ads]"
-    schedule:
-      interval: "weekly"
-    open-pull-requests-limit: 10
-    ignore:
-      - dependency-name: "com.android.tools.build:gradle"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "junit:junit"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.mockito:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "androidx.test:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
-  - package-ecosystem: "gradle"
-    directory: "/packages/image_picker/image_picker_android/android"
-    commit-message:
-      prefix: "[image_picker]"
-    schedule:
-      interval: "weekly"
-    open-pull-requests-limit: 10
-    ignore:
-      - dependency-name: "com.android.tools.build:gradle"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "junit:junit"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.mockito:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "androidx.test:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.robolectric:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
-  - package-ecosystem: "gradle"
-    directory: "/packages/local_auth/local_auth_android/android"
-    commit-message:
-      prefix: "[local_auth]"
-    schedule:
-      interval: "weekly"
-    open-pull-requests-limit: 10
-    ignore:
-      - dependency-name: "com.android.tools.build:gradle"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "junit:junit"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.mockito:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "androidx.test:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.robolectric:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
-  - package-ecosystem: "gradle"
-    directory: "/packages/path_provider/path_provider_android/android"
-    commit-message:
-      prefix: "[path_provider]"
-    schedule:
-      interval: "weekly"
-    open-pull-requests-limit: 10
-    ignore:
-      - dependency-name: "com.android.tools.build:gradle"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "junit:junit"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.mockito:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "androidx.test:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.robolectric:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
-  - package-ecosystem: "gradle"
-    directory: "/packages/pigeon/platform_tests/test_plugin/android"
-    commit-message:
-      prefix: "[pigeon]"
-    schedule:
-      interval: "weekly"
-    open-pull-requests-limit: 10
-    ignore:
-      - dependency-name: "com.android.tools.build:gradle"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "junit:junit"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.mockito:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "androidx.test:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.robolectric:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
-  - package-ecosystem: "gradle"
-    directory: "/packages/pigeon/platform_tests/alternate_language_test_plugin/android"
-    commit-message:
-      prefix: "[pigeon]"
-    schedule:
-      interval: "weekly"
-    open-pull-requests-limit: 10
-    ignore:
-      - dependency-name: "com.android.tools.build:gradle"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "junit:junit"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.mockito:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "androidx.test:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.robolectric:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
-  - package-ecosystem: "gradle"
-    directory: "/packages/quick_actions/quick_actions_android/android"
-    commit-message:
-      prefix: "[quick_actions]"
-    schedule:
-      interval: "weekly"
-    open-pull-requests-limit: 10
-    ignore:
-      - dependency-name: "com.android.tools.build:gradle"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "junit:junit"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.mockito:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "androidx.test:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.robolectric:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
-  - package-ecosystem: "gradle"
-    directory: "/packages/shared_preferences/shared_preferences_android/android"
-    commit-message:
-      prefix: "[shared_pref]"
-    schedule:
-      interval: "weekly"
-    open-pull-requests-limit: 10
-    ignore:
-      - dependency-name: "com.android.tools.build:gradle"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "junit:junit"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.mockito:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "androidx.test:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.robolectric:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
-  - package-ecosystem: "gradle"
-    directory: "/packages/url_launcher/url_launcher_android/android"
-    commit-message:
-      prefix: "[url_launcher]"
-    schedule:
-      interval: "weekly"
-    open-pull-requests-limit: 10
-    ignore:
-      - dependency-name: "com.android.tools.build:gradle"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "junit:junit"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.mockito:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "androidx.test:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.robolectric:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
-  - package-ecosystem: "gradle"
-    directory: "/packages/video_player/video_player_android/android"
-    commit-message:
-      prefix: "[video_player]"
-    schedule:
-      interval: "weekly"
-    open-pull-requests-limit: 10
-    ignore:
-      - dependency-name: "com.android.tools.build:gradle"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "junit:junit"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.mockito:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "androidx.test:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.robolectric:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
-  - package-ecosystem: "gradle"
-    directory: "/packages/webview_flutter/webview_flutter_android/android"
-    commit-message:
-      prefix: "[webview]"
-    schedule:
-      interval: "weekly"
-    open-pull-requests-limit: 10
-    ignore:
-      - dependency-name: "com.android.tools.build:gradle"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "junit:junit"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.mockito:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "androidx.test:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-      - dependency-name: "org.robolectric:*"
-        update-types: ["version-update:semver-minor", "version-update:semver-patch"]