*
* Copyright 2025 Adam Masciola
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#pragma once
#include "bz-application-map-factory.h"
#include "bz-entry.h"
#include "bz-result.h"
G_BEGIN_DECLS
#define BZ_TYPE_ENTRY_GROUP (bz_entry_group_get_type ())
G_DECLARE_FINAL_TYPE (BzEntryGroup, bz_entry_group, BZ, ENTRY_GROUP, GObject)
BzEntryGroup *
bz_entry_group_new (BzApplicationMapFactory *factory);
BzEntryGroup *
bz_entry_group_new_for_single_entry (BzEntry *entry);
BzEntryGroup *
bz_entry_group_new_manual (const char *id,
const char *title,
const char *subtitle);
prohibited */
GMutexLocker *
bz_entry_group_lock (BzEntryGroup *self);
GListModel *
bz_entry_group_get_model (BzEntryGroup *self);
GListModel *
bz_entry_group_get_installed_versions (BzEntryGroup *self);
const char *
bz_entry_group_get_id (BzEntryGroup *self);
const char *
bz_entry_group_get_title (BzEntryGroup *self);
const char *
bz_entry_group_get_developer (BzEntryGroup *self);
const char *
bz_entry_group_get_description (BzEntryGroup *self);
GIcon *
bz_entry_group_get_mini_icon (BzEntryGroup *self);
gboolean
bz_entry_group_get_is_floss (BzEntryGroup *self);
const char *
bz_entry_group_get_light_accent_color (BzEntryGroup *self);
const char *
bz_entry_group_get_dark_accent_color (BzEntryGroup *self);
gboolean
bz_entry_group_get_is_flathub (BzEntryGroup *self);
gboolean
bz_entry_group_get_is_verified (BzEntryGroup *self);
gboolean
bz_entry_group_get_is_mobile_friendly (BzEntryGroup *self);
const char *
bz_entry_group_get_search_tokens (BzEntryGroup *self);
const char *
bz_entry_group_get_eol (BzEntryGroup *self);
guint64
bz_entry_group_get_installed_size (BzEntryGroup *self);
GListModel *
bz_entry_group_get_addon_group_ids (BzEntryGroup *self);
void
bz_entry_group_append_addon_group_id (BzEntryGroup *self,
const char *id);
int
bz_entry_group_get_n_addons (BzEntryGroup *self);
const char *
bz_entry_group_get_donation_url (BzEntryGroup *self);
gboolean
bz_entry_group_has_category (BzEntryGroup *self,
const char *name);
BzCategoryFlags
bz_entry_group_get_categories (BzEntryGroup *self);
int
bz_entry_group_get_content_age_rating (BzEntryGroup *self);
BzResult *
bz_entry_group_dup_ui_entry (BzEntryGroup *self);
char *
bz_entry_group_dup_ui_entry_id (BzEntryGroup *self);
int
bz_entry_group_get_installable (BzEntryGroup *self);
int
bz_entry_group_get_updatable (BzEntryGroup *self);
int
bz_entry_group_get_removable (BzEntryGroup *self);
int
bz_entry_group_get_installable_and_available (BzEntryGroup *self);
int
bz_entry_group_get_updatable_and_available (BzEntryGroup *self);
int
bz_entry_group_get_removable_and_available (BzEntryGroup *self);
gboolean
bz_entry_group_is_searchable (BzEntryGroup *self);
gboolean
bz_entry_group_is_addon (BzEntryGroup *self);
guint64
bz_entry_group_get_user_data_size (BzEntryGroup *self);
guint64
bz_entry_group_get_cache_size (BzEntryGroup *self);
DexFuture *
bz_entry_group_has_user_data (BzEntryGroup *self);
DexFuture *
bz_entry_group_reap_user_data (BzEntryGroup *self);
DexFuture *
bz_entry_group_reap_user_cache (BzEntryGroup *self);
void
bz_entry_group_add (BzEntryGroup *self,
BzEntry *entry,
BzEntry *runtime,
gboolean ignore_eol);
gboolean
bz_entry_group_get_installed_is_eol (BzEntryGroup *self);
gboolean
bz_entry_group_get_unique_id_is_eol (BzEntryGroup *self,
const char *unique_id);
void
bz_entry_group_connect_living (BzEntryGroup *self,
BzEntry *entry);
DexFuture *
bz_entry_group_dup_all_into_store (BzEntryGroup *self);
void
bz_entry_group_serialize (BzEntryGroup *self,
GVariantBuilder *builder);
gboolean
bz_entry_group_deserialize (BzEntryGroup *self,
GVariant *import);
gboolean
bz_entry_group_reconcile_with_installed_set (BzEntryGroup *self,
GHashTable *installed_set);
G_END_DECLS