<!--
 *
 * Copyright (C) 2013 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
  -->
<idea-plugin>
  <extensions defaultExtensionNs="com.intellij">
    <registryKey key="ide.slow.operations.assertion.generic" defaultValue="false" description="Flag for generic activities and code in `SlowOperations#allowSlowOperations`"/>
    <applicationInitializedListener id="Startup.AndroidStudioInitializer" implementation="com.android.tools.idea.startup.AndroidStudioInitializer" />
    <actionConfigurationCustomizer id="Startup.AndroidStudioActionCustomizer" implementation="com.android.tools.idea.startup.AndroidStudioActionCustomizer"/>
    <applicationInitializedListener implementation="com.android.tools.idea.instrumentation.threading.ThreadingChecker" />
    <applicationService serviceInterface="com.intellij.platform.ide.customization.ExternalProductResourceUrls"
                        serviceImplementation="com.android.tools.idea.AndroidStudioResourceUrls"
                        overrides="true"/>

    <applicationService serviceInterface="com.intellij.openapi.updateSettings.UpdateStrategyCustomization"
                        serviceImplementation="com.android.tools.idea.AndroidStudioUpdateStrategyCustomization"
                        overrides="true"/>

    <!--suppress PluginXmlValidity (this service is intentionally registered outside the module of the interface class) -->
    <applicationService serviceInterface="com.intellij.analytics.AndroidStudioAnalytics"
                        serviceImplementation="com.android.tools.idea.startup.AndroidStudioAnalyticsImpl"/>

    <!--suppress PluginXmlValidity (this service is intentionally registered outside the module of the interface class) -->
    <applicationService serviceInterface="com.intellij.ide.AndroidStudioSystemHealthMonitorAdapter$EventsListener"
                        serviceImplementation="com.android.tools.idea.diagnostics.AndroidStudioSystemHealthMonitor$MyEventsListener"/>

    <!-- overrides UTM-tracking implementation included from JavaIdePlugin.xml: -->
    <applicationService serviceImplementation="com.intellij.openapi.application.IdeUrlTrackingParametersProvider"
                        overrides="true"/>

    <!-- Disable JetBrains feedback surveys (b/402895189). Tested by AndroidStudioJetBrainsSurveysTest. -->
    <registryKey overrides="true" key="platform.feedback" defaultValue="false" description="Enables JetBrains feedback surveys"/>

    <!-- TODO(b/416578927): remove this override for ide.workspace.model.sdk.remove.custom.processing -->
    <registryKey overrides="true" key="ide.workspace.model.sdk.remove.custom.processing" defaultValue="false" restartRequired="true"
                 description="Removes custom processing of Global Libraries and SDKs in the Workspace Model"/>

    <!-- This registry flag changed upstream in 2025.1 causing the platform to think JCef is supported in Android Studio. b/416777166 -->
    <registryKey key="ide.browser.jcef.out-of-process.enabled" overrides="true" defaultValue="false" description="Enable JCEF is a separate process"/>

    <welcomeScreen implementation="com.android.tools.idea.welcome.wizard.AndroidStudioWelcomeScreenProvider"/>

    <codeStyleSettingsProvider implementation="org.jetbrains.android.formatter.AndroidStudioCodeStyleSettingsProvider" order="last"/>

    <errorHandler implementation="com.android.tools.idea.diagnostics.error.AndroidStudioErrorReportSubmitter"/>
    <applicationInitializedListener id="Startup.StartLowMemoryReporter"
                                    implementation="com.android.tools.idea.stats.LowMemoryReporter$OnStartup"/>
    <postStartupActivity implementation="com.android.tools.idea.stats.GcPauseWatcher" />
    <postStartupActivity implementation="com.android.tools.idea.serverflags.ServerFlagDownloader$Initializer" />
    <postStartupActivity implementation="com.android.tools.idea.diagnostics.WindowsCRuntimeChecker" os="windows" />
    <postStartupActivity implementation="com.android.tools.idea.diagnostics.DiagnosticsReportCleaner" />
    <defender.config implementation="com.android.tools.idea.diagnostics.windows.AndroidWindowsDefenderCheckerExt"/>
    <defaultToolWindowLayout
      id="AndroidStudioDefaultToolWindowLayoutExtension"
      implementation="com.android.tools.idea.AndroidStudioDefaultToolWindowLayoutExtension"
      order="last"
    />
    <applicationService serviceInterface="com.intellij.diagnostic.LowMemoryNotifier" preload="true" overrides="true"
                        serviceImplementation="com.android.tools.idea.memorysettings.AndroidLowMemoryNotifier"/>
    <execution.applicationRunLineMarkerHider implementation="com.android.tools.idea.run.AndroidRunMarkerHider"/>
    <postStartupActivity implementation="com.android.tools.idea.project.LibraryToolWindowInitializer"/>
    <postStartupActivity implementation="com.android.tools.idea.gservices.StudioDeprecationChecker$Initializer" />
    <notificationGroup displayType="STICKY_BALLOON" id="StudioDeprecationNotification" />
  </extensions>

  <applicationListeners>
    <listener
        class="com.android.tools.idea.diagnostics.LastActionTracker$MyActionListener"
        topic="com.intellij.openapi.actionSystem.ex.AnActionListener" />
  </applicationListeners>

  <actions>
    <action id="HelpTopics" class="com.android.tools.idea.actions.MeetAndroidStudioHelpAction" overrides="true"
            icon="AllIcons.Actions.Help" text="Android Studio Help" description="Help"/>
    <reference ref="AndroidToolsGroup">
      <add-to-group group-id="ToolsMenu" anchor="first"/>
    </reference>

    <action class="com.intellij.ide.actions.HelpTopicsAction" id="IntelliJ.HelpTopics" text="IntelliJ IDEA Help">
      <add-to-group group-id="HelpMenu" anchor="after" relative-to-action="HelpTopics" />
    </action>

    <action class="com.android.tools.idea.actions.license.ShowLicensesUsedAction" id="Android.ShowLicenses">
      <add-to-group group-id="HelpMenu" anchor="before" relative-to-action="Help.KeymapReference" />
    </action>

    <action class="com.android.tools.idea.diagnostics.hprof.action.UserInvokedHeapDumpSnapshotAction" id="UserInvokedHeapDumpSnapshot"
            text="Analyze Memory Usage">
      <add-to-group group-id="HelpMenu" anchor="after" relative-to-action="CollectZippedLogs" />
    </action>

    <action class="com.android.tools.idea.diagnostics.hprof.action.InternalUserInvokedFullAnalysisAction" id="UserInvokedFullAnalysis"
            text="Create And Immediately Analyze Heap Dump" internal="true">
      <add-to-group group-id="Internal.HeapAnalysis"/>
    </action>

    <group id="Internal.Android.FreezeTools" popup="true" internal="true" text="Freeze">
      <action class="com.android.tools.idea.diagnostics.freeze.DeadlockUIThreadWithLocks" id="DeadlockUIThread"
              text="Create UI thread deadlock with Locks" internal="true"/>

      <action class="com.android.tools.idea.diagnostics.freeze.DeadlockUIThreadWithLocksTimeout" id="DeadlockUIThreadWithTimeout"
              text="Create UI thread deadlock with Locks (10s timeout)" internal="true"/>

      <action class="com.android.tools.idea.diagnostics.freeze.DeadlockUIThreadWithSynchronized" id="DeadlockUIThreadWithSynchronized"
              text="Create UI thread deadlock with Synchronized" internal="true"/>

      <action class="com.android.tools.idea.diagnostics.freeze.DeadlockUIThreadWithReadAction" id="DeadlockUIThreadWithReadAction"
              text="Create UI thread deadlock with Read action" internal="true"/>
      <add-to-group group-id="Internal.Android"/>
    </group>

    <action class="com.android.tools.idea.diagnostics.hprof.action.InternalNonuserInvokedHeapDumpSnapshotAction" id="SilentHeapDumpSnapshot"
              text="Create And Schedule Heap Dump Analysis (Non-user invoked)" internal="true">
      <add-to-group group-id="Internal.HeapAnalysis"/>
    </action>

    <action class="com.android.tools.idea.diagnostics.heap.CollectMemoryUsageStatisticsAction" id="CollectMemoryUsageStatistics"
            text="Collect Studio Components Memory Usage Statistics" internal="true">
      <add-to-group group-id="Internal.HeapAnalysis"/>
    </action>

    <group id="Internal.JavaFlightRecorder" text="Java Flight Recorder" popup="true" internal="true">
      <add-to-group group-id="Internal" anchor="after" relative-to-action="Internal.HeapAnalysis"/>
    </group>
    <action class="com.android.tools.idea.diagnostics.jfr.FreezeUiAction" id="FreezeUI"
            text="Freeze UI" internal="true">
      <add-to-group group-id="Internal.JavaFlightRecorder" anchor="first"/>
    </action>
    <action class="com.android.tools.idea.diagnostics.jfr.RecordingManager$DumpJfrAction" id="DumpJFR"
            text="Dump JFR Recording" internal="true">
      <add-to-group group-id="Internal.JavaFlightRecorder" anchor="after" relative-to-action="FreezeUI"/>
    </action>

    <group id="Android.NavBarToolBar">
      <reference ref="AndroidDeviceManagerPlaceholder" />
      <separator/>
      <add-to-group group-id="NavBarToolBar" anchor="before" relative-to-action="SearchEverywhere" />
    </group>

    <group id="Android.MainToolbarRight" >
      <reference ref="Android.InstantRunActions" />
      <reference ref="AndroidConnectDebuggerAction" />

      <add-to-group group-id="MainToolbarRight" anchor="before" relative-to-action="SearchEverywhere" />
    </group>

    <action id="WelcomeScreen.AndroidStudio.apkProfilingAndDebugging"
            class="com.android.tools.idea.apk.ImportApkAction">
      <add-to-group group-id="WelcomeScreen.QuickStart"/>
    </action>

    <action id="ImportApkAction"
            class="com.android.tools.idea.apk.ImportApkAction" text="Profile or Debug APK...">
      <add-to-group group-id="FileOpenGroup" relative-to-action="OpenFile" anchor="after"/>
    </action>

    <group id="ImportTests"
           class="com.android.tools.idea.testartifacts.instrumented.testsuite.actions.ImportTestGroup"
           icon="AllIcons.Vcs.History"
           overrides="true"/>
    <action id="ImportTestsFromFile"
            class="com.android.tools.idea.testartifacts.instrumented.testsuite.actions.ImportTestsFromFileAction"
            icon="AllIcons.ToolbarDecorator.Import"
            overrides="true"/>
    <action
        id="ReportProblem"
        class="com.android.tools.idea.actions.SubmitBugReportAction"
        overrides="true"/>
    <action
        id="CollectZippedLogs"
        class="com.android.tools.idea.actions.CreateDiagnosticReportAction"
        overrides="true"
        text="Collect Logs and Diagnostic Data"
        description="Collect logs and diagnostic data"/>
    <action
        id="ResetUserIdAction"
        class="com.android.tools.idea.actions.ResetUserIdAction"
        text="Reset Data Sharing User Identifier"
        description="Reset Data Sharing User Identifier"/>
  </actions>

  <extensions defaultExtensionNs="com.intellij">
    <defaultProjectTypeProvider type="Android"/>
    <targetElementEvaluator language="XML" implementationClass="org.jetbrains.android.dom.AndroidXmlTargetElementEvaluatorEx" order="first"/>

    <!-- Unregister DefaultJdkConfigurator b/112481251 -->
    <applicationService serviceInterface="com.intellij.openapi.projectRoots.DefaultJdkConfigurator"
                        serviceImplementation="com.android.tools.idea.sdk.StudioJdkConfigurator"
                        overrides="true"
                        headlessImplementation="com.android.tools.idea.sdk.StudioJdkConfigurator"
    />
    <applicationService serviceInterface="com.intellij.diagnostic.EventWatcher"
                        serviceImplementation="com.android.tools.idea.diagnostics.typing.TypingEventWatcher" headlessImplementation=""
                        preload="notHeadless"
                        overrides="true"/>

    <welcomeFrameProvider implementation="com.android.tools.idea.welcome.wizard.FirstRunWizardFrameProvider" order="FIRST"/>

    <localInspection groupPath="Java" language="JAVA" suppressId="deprecation" shortName="Deprecation" displayName="Deprecated API usage"
                     groupKey="group.names.code.maturity.issues" groupBundle="messages.InspectionsBundle"
                     enabledByDefault="true" level="WARNING"
                     implementationClass="org.jetbrains.android.inspections.AndroidDeprecationInspection"/>

    <applicationConfigurable parentId="preferences.general"
                             displayName="Memory Settings"
                             provider="com.android.tools.idea.memorysettings.MemorySettingsConfigurableProvider"
                             id="memory.settings"/>

    <statistic.eventLog.eventLoggerProvider implementation="com.android.tools.idea.stats.AndroidStudioStatisticsEventLoggerProvider"/>
    <projectService serviceInterface="com.intellij.codeInsight.NullableNotNullManager"
                    serviceImplementation="com.android.tools.idea.lang.AndroidNullableNotNullManagerImpl"
                    overrides="true"
    />

    <postStartupActivity implementation="com.android.tools.idea.startup.ProjectMetricsInitializer$MyStartupActivity"/>
    <postStartupActivity implementation="com.android.tools.idea.diagnostics.commit.GitCommitTrackerActivity"/>
  </extensions>

  <applicationListeners>
    <listener class="com.android.tools.idea.startup.ProjectMetricsInitializer"
              topic="com.intellij.openapi.project.ProjectCloseListener"/>
    <listener class="com.android.tools.idea.stats.AndroidStudioUsageTracker$UsageTrackerAppLifecycleListener"
              topic="com.intellij.ide.AppLifecycleListener"/>
  </applicationListeners>
  <projectListeners>
    <listener class="com.android.tools.idea.navigator.ProjectViewListener"
              activeInHeadlessMode="false"
              activeInTestMode="false"
              topic="com.intellij.openapi.wm.ex.ToolWindowManagerListener"/>
  </projectListeners>
</idea-plugin>