<!--
  ~ Copyright (C) 2023 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">
    <applicationService serviceImplementation="com.google.gct.studio.samples.SamplesService"/>
  </extensions>


  <actions>

    <action id="GoogleCloudTools.SampleImport"
            class="com.google.gct.studio.samples.SampleImportAction"
            text="Import Sample...">
      <add-to-group group-id="NewProjectOrModuleGroup" relative-to-action="ImportModule" anchor="after"/>
      <add-to-group group-id="ProjectWidget.Actions" anchor="after" relative-to-action="ProjectFromVersionControl"/>
    </action>
    <action id="WelcomeScreen.GoogleCloudTools.SampleImport"
            class="com.google.gct.studio.samples.SampleImportAction"
            text="Import an Android Code Sample"
            icon="/icons/welcome/importAndroidCodeSample.png">
      <add-to-group group-id="WelcomeScreen.QuickStart"
                    relative-to-action="Vcs.VcsClone"
                    anchor="after"/>
    </action>
  </actions>

</idea-plugin>
