// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/webapps/browser/android/add_to_homescreen_params.h"
#include "components/webapps/browser/android/shortcut_info.h"
namespace webapps {
AddToHomescreenParams::AddToHomescreenParams(
AppType type,
std::unique_ptr<ShortcutInfo> info,
const SkBitmap& primary_icon,
const InstallableStatusCode status_code,
const WebappInstallSource source)
: app_type(type),
primary_icon(std::move(primary_icon)),
shortcut_info(std::move(info)),
install_source(source),
installable_status(status_code) {
CHECK(IsWebApk() || app_type == AppType::SHORTCUT);
}
AddToHomescreenParams::AddToHomescreenParams(
const std::string& package_name,
const base::android::ScopedJavaGlobalRef<jobject> native_java_app_data,
const SkBitmap& primary_icon,
const WebappInstallSource source)
: app_type(AppType::NATIVE),
primary_icon(std::move(primary_icon)),
install_source(source),
native_app_package_name(std::move(package_name)),
native_app_data(std::move(native_java_app_data)) {}
AddToHomescreenParams::~AddToHomescreenParams() = default;
bool AddToHomescreenParams::HasMaskablePrimaryIcon() const {
return app_type != AppType::NATIVE && shortcut_info->is_primary_icon_maskable;
}
bool AddToHomescreenParams::IsWebApk() const {
return IsWebApk(app_type);
}
// static
bool AddToHomescreenParams::IsWebApk(AppType type) {
return type == AppType::WEBAPK || type == AppType::WEBAPK_DIY;
}
} // namespace webapps