| // Copyright 2018 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "chrome/browser/android/metrics/android_profile_session_durations_service.h" |
| |
| AndroidProfileSessionDurationsService::AndroidProfileSessionDurationsService( |
| syncer::SyncService* sync_service, |
| identity::IdentityManager* identity_manager) |
| : metrics_recorder_( |
| std::make_unique<syncer::SyncSessionDurationsMetricsRecorder>( |
| sync_service, |
| identity_manager)) { |
| // The AndroidProfileSessionDurationsService object is created as soon as |
| // the profile is initialized. On Android, the profile is initialized as part |
| // of the native code initialization, which is done soon after the application |
| // enters foreground and before any of the Chrome UI is shown. Let's start |
| // tracking the session now. |
| OnAppEnterForeground(base::TimeTicks::Now()); |
| } |
| |
| AndroidProfileSessionDurationsService:: |
| ~AndroidProfileSessionDurationsService() = default; |
| |
| void AndroidProfileSessionDurationsService::Shutdown() { |
| metrics_recorder_.reset(); |
| } |
| |
| void AndroidProfileSessionDurationsService::OnAppEnterForeground( |
| base::TimeTicks session_start) { |
| metrics_recorder_->OnSessionStarted(session_start); |
| } |
| |
| void AndroidProfileSessionDurationsService::OnAppEnterBackground( |
| base::TimeDelta session_length) { |
| metrics_recorder_->OnSessionEnded(session_length); |
| } |