diff --git a/app/scripts/api/analytics/analytics_sender_bookmark.gd b/app/scripts/api/analytics/analytics_sender_bookmark.gd index 51add7d..f2580ef 100644 --- a/app/scripts/api/analytics/analytics_sender_bookmark.gd +++ b/app/scripts/api/analytics/analytics_sender_bookmark.gd @@ -11,8 +11,8 @@ func _ready() -> void: bookmarks.on_unstar.connect(send_unbookmark) -func send_bookmark(gate: Gate, featured: bool) -> void: - if featured: return +func send_bookmark(gate: Gate) -> void: + if gate.featured: return analytics.send_event(AnalyticsEvents.bookmark(gate.url)) diff --git a/app/scripts/api/featured_gates.gd b/app/scripts/api/featured_gates.gd index ff3418f..18939b6 100644 --- a/app/scripts/api/featured_gates.gd +++ b/app/scripts/api/featured_gates.gd @@ -4,6 +4,7 @@ const KEY_URL = "url" const KEY_TITLE = "title" const KEY_DESCRIPTION = "description" const KEY_ICON = "icon" +const KEY_IS_SPECIAL = "is_special" @export var api: ApiSettings @export var bookmarks: Bookmarks @@ -44,7 +45,9 @@ func featured_gates_request() -> void: func star_gate(gate_d: Dictionary) -> void: var gate = Gate.create(gate_d[KEY_URL], gate_d[KEY_TITLE], gate_d[KEY_DESCRIPTION], gate_d[KEY_ICON], "") - bookmarks.star(gate, true) + gate.is_special = gate_d[KEY_IS_SPECIAL] + gate.featured = true + bookmarks.star(gate) gate.icon = await FileDownloader.download(gate.icon_url) bookmarks.update(gate) diff --git a/app/scripts/bookmark_saver.gd b/app/scripts/bookmark_saver.gd index 94bffea..f0d8e2c 100644 --- a/app/scripts/bookmark_saver.gd +++ b/app/scripts/bookmark_saver.gd @@ -12,7 +12,7 @@ func _ready() -> void: bookmarks.ready() bookmarks.save_icon.connect(save_icon) - bookmarks.on_star.connect(func(_gate, _featured): save_bookmarks()) + bookmarks.on_star.connect(func(_gate): save_bookmarks()) bookmarks.on_unstar.connect(func(_gate): save_bookmarks()) bookmarks.on_update.connect(func(_gate): save_bookmarks()) diff --git a/app/scripts/resources/bookmarks.gd b/app/scripts/resources/bookmarks.gd index f7edd7f..62aaf6f 100644 --- a/app/scripts/resources/bookmarks.gd +++ b/app/scripts/resources/bookmarks.gd @@ -2,7 +2,7 @@ extends Resource class_name Bookmarks signal on_ready() -signal on_star(gate: Gate, featured: bool) +signal on_star(gate: Gate) signal on_unstar(gate: Gate) signal on_update(gate: Gate) signal save_icon(gate: Gate) @@ -49,14 +49,14 @@ func update(gate: Gate) -> void: on_update.emit(gate) -func star(gate: Gate, featured: bool = false) -> void: +func star(gate: Gate) -> void: if gates.has(gate.url): return gates[gate.url] = gate starred_gates.append(gate) save_icon.emit(gate) - on_star.emit(gate, featured) + on_star.emit(gate) func unstar(gate: Gate) -> void: diff --git a/app/scripts/resources/gate.gd b/app/scripts/resources/gate.gd index 469bc5f..6b0fc25 100644 --- a/app/scripts/resources/gate.gd +++ b/app/scripts/resources/gate.gd @@ -11,6 +11,10 @@ class_name Gate @export var icon: String @export var image: String +# Only for featured gates. Cleared when opened +@export var featured: bool +@export var is_special: bool + var resource_pack: String var shared_libs_dir: String # local path where libs downloaded diff --git a/app/scripts/ui/menu/bookmark_container.gd b/app/scripts/ui/menu/bookmark_container.gd index df405f6..0f67dcd 100644 --- a/app/scripts/ui/menu/bookmark_container.gd +++ b/app/scripts/ui/menu/bookmark_container.gd @@ -10,7 +10,7 @@ func _ready() -> void: show_bookmark(gate) -func show_bookmark(gate: Gate, _featured: bool = false) -> void: +func show_bookmark(gate: Gate) -> void: var bookmark: BookmarkUI = bookmark_scene.instantiate() bookmark.fill(gate) add_child(bookmark) diff --git a/app/scripts/ui/menu/bookmark_ui.gd b/app/scripts/ui/menu/bookmark_ui.gd index 7f0946b..b62b5cf 100644 --- a/app/scripts/ui/menu/bookmark_ui.gd +++ b/app/scripts/ui/menu/bookmark_ui.gd @@ -15,11 +15,11 @@ func _ready() -> void: button_special.pressed.connect(on_pressed) -func fill(gate: Gate, special: bool = false) -> void: +func fill(gate: Gate) -> void: if gate == null: return - button.visible = not special - button_special.visible = special + button.visible = not gate.is_special + button_special.visible = gate.is_special url = gate.url title.text = "Unnamed" if gate.title.is_empty() else gate.title