<!--
@license
Copyright (C) 2019 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.
-->

<link rel="import" href="./gr-imagare-inline.html">
<link rel="import" href="./gr-imagare-preferences.html">
<link rel="import" href="./gr-imagare-pref-menu-item.html">
<link rel="import" href="./gr-imagare-upload.html">

<dom-module id="imagare">
  <script>
    Gerrit.install(plugin => {
      if (!window.Polymer) { return; }

      plugin.restApi('/config/server/').get('imagare~config').then(config => {
        if (config && config.enable_image_server) {
          plugin.screen('upload', 'gr-imagare-upload');
        }
      });
      plugin.registerCustomComponent('change-view-integration', 'gr-imagare-inline');
      plugin.registerCustomComponent('settings-screen', 'gr-imagare-preferences');
      plugin.registerCustomComponent('settings-menu-item', 'gr-imagare-pref-menu-item');
    });
  </script>
</dom-module>
