chromium/ash/system/input_device_settings/device_image.cc

// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "ash/system/input_device_settings/device_image.h"

#include "ash/system/input_device_settings/input_device_settings_utils.h"
#include "third_party/skia/include/core/SkBitmap.h"
#include "ui/base/webui/web_ui_util.h"

namespace ash {

DeviceImage::DeviceImage() = default;
DeviceImage::~DeviceImage() = default;

DeviceImage::DeviceImage(const std::string& device_key,
                         const std::string& data_url)
    : device_key_(device_key), data_url_(data_url) {}

DeviceImage::DeviceImage(const std::string& device_key,
                         const gfx::ImageSkia& image)
    : device_key_(device_key), image_(image) {
  if (!image_.isNull()) {
    const SkBitmap bitmap = *image_.bitmap();
    data_url_ = webui::GetBitmapDataUrl(bitmap);
  }
}

bool DeviceImage::IsValid() const {
  return !data_url_.empty() || !image_.isNull();
}

}  // namespace ash