123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- // Copyright 2015 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 "chromecast/crash/app_state_tracker.h"
- #include "base/no_destructor.h"
- #include "chromecast/crash/cast_crash_storage.h"
- namespace {
- struct CurrentAppState {
- std::string previous_app;
- std::string current_app;
- std::string last_launched_app;
- std::string stadia_session_id;
- };
- CurrentAppState* GetAppState() {
- static base::NoDestructor<CurrentAppState> app_state;
- return app_state.get();
- }
- } // namespace
- namespace chromecast {
- // static
- std::string AppStateTracker::GetLastLaunchedApp() {
- return GetAppState()->last_launched_app;
- }
- // static
- std::string AppStateTracker::GetCurrentApp() {
- return GetAppState()->current_app;
- }
- // static
- std::string AppStateTracker::GetPreviousApp() {
- return GetAppState()->previous_app;
- }
- // static
- std::string AppStateTracker::GetStadiaSessionId() {
- return GetAppState()->stadia_session_id;
- }
- // static
- void AppStateTracker::SetLastLaunchedApp(const std::string& app_id) {
- GetAppState()->last_launched_app = app_id;
- CastCrashStorage::GetInstance()->SetLastLaunchedApp(app_id);
- }
- // static
- void AppStateTracker::SetCurrentApp(const std::string& app_id) {
- CurrentAppState* app_state = GetAppState();
- app_state->previous_app = app_state->current_app;
- app_state->current_app = app_id;
- CastCrashStorage::GetInstance()->SetCurrentApp(app_id);
- CastCrashStorage::GetInstance()->SetPreviousApp(app_state->previous_app);
- }
- // static
- void AppStateTracker::SetPreviousApp(const std::string& app_id) {
- GetAppState()->previous_app = app_id;
- CastCrashStorage::GetInstance()->SetPreviousApp(app_id);
- }
- // static
- void AppStateTracker::SetStadiaSessionId(const std::string& stadia_session_id) {
- if (!stadia_session_id.empty()) {
- GetAppState()->stadia_session_id = stadia_session_id;
- CastCrashStorage::GetInstance()->SetStadiaSessionId(stadia_session_id);
- } else {
- GetAppState()->stadia_session_id.clear();
- CastCrashStorage::GetInstance()->ClearStadiaSessionId();
- }
- }
- } // namespace chromecast
|