mirror of
https://github.com/thegatesbrowser/thegates.git
synced 2025-08-24 02:17:27 -04:00
afk manager
This commit is contained in:
parent
9598ec94f0
commit
99d7c51b5f
7 changed files with 112 additions and 5 deletions
|
@ -100,3 +100,15 @@ func onboarding_finished(time_spend: float) -> Dictionary:
|
|||
var event = base("onboarding_finished")
|
||||
event.time_spend = time_spend
|
||||
return event
|
||||
|
||||
|
||||
# AFK
|
||||
|
||||
func enter_afk() -> Dictionary:
|
||||
return base("enter_afk")
|
||||
|
||||
|
||||
func leave_afk(time_spend: float) -> Dictionary:
|
||||
var event = base("leave_afk")
|
||||
event.time_spend = time_spend
|
||||
return event
|
||||
|
|
19
app/scripts/api/analytics/analytics_sender_afk.gd
Normal file
19
app/scripts/api/analytics/analytics_sender_afk.gd
Normal file
|
@ -0,0 +1,19 @@
|
|||
extends AnalyticsSender
|
||||
class_name AnalyticsSenderAfk
|
||||
|
||||
var afk_started_tick: int
|
||||
|
||||
|
||||
func start() -> void:
|
||||
super.start()
|
||||
|
||||
AfkManager.state_changed.connect(send_afk_state_changed)
|
||||
|
||||
|
||||
func send_afk_state_changed(is_afk: bool) -> void:
|
||||
if is_afk:
|
||||
afk_started_tick = Time.get_ticks_msec()
|
||||
analytics.send_event(AnalyticsEvents.enter_afk())
|
||||
else:
|
||||
var time_spend = Analytics.get_delta_sec_from_tick(afk_started_tick)
|
||||
analytics.send_event(AnalyticsEvents.leave_afk(time_spend))
|
|
@ -2,6 +2,7 @@ extends AnalyticsSender
|
|||
class_name AnalyticsSenderApp
|
||||
|
||||
const HEARTBEAT_DELAY = 60
|
||||
|
||||
var heartbeat_timer: Timer
|
||||
|
||||
|
||||
|
@ -9,7 +10,9 @@ func start() -> void:
|
|||
super.start()
|
||||
|
||||
analytics.send_event(AnalyticsEvents.app_open())
|
||||
|
||||
start_heartbeat()
|
||||
AfkManager.state_changed.connect(on_state_changed)
|
||||
|
||||
# Send latest exit event
|
||||
var json: String = DataSaver.get_string("analytics", "app_exit")
|
||||
|
@ -26,12 +29,20 @@ func start_heartbeat() -> void:
|
|||
|
||||
|
||||
func send_hearbeat() -> void:
|
||||
var time_spend = Analytics.get_delta_sec_from_tick(0)
|
||||
var time_spend = AfkManager.get_active_sec()
|
||||
analytics.send_event(AnalyticsEvents.heartbeat(time_spend))
|
||||
|
||||
|
||||
func on_state_changed(is_afk: bool) -> void:
|
||||
if is_afk:
|
||||
heartbeat_timer.stop()
|
||||
return
|
||||
|
||||
heartbeat_timer.start(HEARTBEAT_DELAY)
|
||||
|
||||
|
||||
func _exit_tree() -> void:
|
||||
# Save to send on open
|
||||
var time_spend = Analytics.get_delta_sec_from_tick(0)
|
||||
var time_spend = AfkManager.get_active_sec()
|
||||
var event = AnalyticsEvents.app_exit(time_spend)
|
||||
DataSaver.set_value("analytics", "app_exit", JSON.stringify(event))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue