blob: d52d65a88ea8d0e9b59ca901c58728b7b549dc38 [file] [log] [blame]
// Copyright 2020 The Fuchsia 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 "src/lib/analytics/cpp/core_dev_tools/analytics_messages.h"
#include <iostream>
#include "src/lib/fxl/strings/substitute.h"
namespace analytics::core_dev_tools::internal {
namespace {
constexpr char kParticipatingTools[] = R"( device_launcher
ffx
fidlcat
Fuchsia extension for VS Code
Fuchsia Snapshot Viewer
scrutiny verify routes
symbolizer
zxdb)";
// In the following message:
// $0: list of participating tools
// $1: tool name
// $2: disable args
// $3: status args
constexpr char kMessageFirstRunOfFirstTool[] = R"(Welcome to Fuchsia! - https://fuchsia.dev
Fuchsia developer tools, including
$0
use Google Analytics to report feature usage statistics and basic crash reports.
Google may examine the collected data in aggregate to help improve these tools,
other Fuchsia tools, and the Fuchsia SDK.
Analytics are not sent on this very first run. To disable reporting, type
$1 $2
To display the current setting and what is collected, type
$1 $3
If you opt out of analytics, an opt-out event will be sent, and then no further
information will be sent by the Fuchsia developer tools to Google.
By using Fuchsia developer tools, you agree to the Google Terms of Service.
Note: The Google Privacy Policy describes how data is handled in your use of
this service.
See Google's privacy policy:
https://policies.google.com/privacy
)";
// In the following message:
// $0: tool name
// $1: disable args
// $2: status args
constexpr char kMessageFirstRunOfOtherToolEnabled[] = R"(Welcome to $0!
As part of the Fuchsia developer tools, this tool uses Google Analytics to
report feature usage statistics and basic crash reports. Google may examine the
collected data in aggregate to help improve the developer tools, other
Fuchsia tools, and the Fuchsia SDK.
To disable reporting, type
$0 $1
To display the current setting, a full list of tools sharing this setting, and
what is collected, type
$0 $2
If you opt out of analytics, an opt-out event will be sent, and then no further
information will be sent by the Fuchsia developer tools to Google.
See Google's privacy policy:
https://policies.google.com/privacy
)";
// In the following message:
// $0: tool name
// $1: enable args
// $2: status args
constexpr char kMessageFirstRunOfOtherToolDisabled[] = R"(Welcome to $0!
Analytics is currently disabled for Fuchsia developer tools, so no
information will be sent to Google from these tools.
If you would like to help improve the Fuchsia developer tools, other Fuchsia tools,
and the Fuchsia SDK via allowing us to report feature usage statistics and basic
crash reports to Google, you can type
$0 $1
To display the current setting, a full list of tools sharing this setting, and
what is collected, type
$0 $2
Thank you!
See Google's privacy policy:
https://policies.google.com/privacy
)";
// In the following message:
// $0: disabled/enabled
// $1: enable/disable
// $2: list of participating tools
// $3: tool name
// $4: enable args / disable args
// $5: list of tool-specific analytics
constexpr char kMessageShowAnalytics[] =
R"(The collection of analytics is currently $0 for Fuchsia developer
tools, including
$2
To $1 analytics for all these tools, type
$3 $4
When enabled, a random unique user ID (UUID) will be created for the current
user and it is used to collect some anonymized analytics of the session and user
workflow in order to improve the user experience. The analytics collected by
$3 are:
$5
When analytics is disabled, any existing UUID is deleted, and a new
UUID will be created if analytics is later re-enabled.
When enabled, the UUID and the status are stored in $HOME/.fuchsia
)";
// In the following message
// $0: enabled/disabled
constexpr char kMessageShowAlready[] =
R"(Collection of analytics for Fuchsia developer tools is already $0.)";
// In the following message
// $0: enabled/disabled
constexpr char kMessageShowChangedTo[] =
R"(Collection of analytics for Fuchsia developer tools is $0 at user's
request.)";
} // namespace
void ShowMessageFirstRunOfFirstTool(const ToolInfo& tool_info) {
std::cerr << fxl::Substitute(kMessageFirstRunOfFirstTool, kParticipatingTools,
tool_info.tool_name, tool_info.disable_args, tool_info.status_args)
<< std::endl;
}
void ShowMessageFirstRunOfOtherTool(const ToolInfo& tool_info, AnalyticsStatus status) {
if (status == AnalyticsStatus::kEnabled) {
std::cerr << fxl::Substitute(kMessageFirstRunOfOtherToolEnabled, tool_info.tool_name,
tool_info.disable_args, tool_info.status_args)
<< std::endl;
} else {
std::cerr << fxl::Substitute(kMessageFirstRunOfOtherToolDisabled, tool_info.tool_name,
tool_info.enable_args, tool_info.status_args)
<< std::endl;
}
}
void ShowAnalytics(const ToolInfo& tool_info, AnalyticsStatus status,
std::string_view analytics_list) {
bool is_enabled = (status == AnalyticsStatus::kEnabled);
std::cout << fxl::Substitute(
kMessageShowAnalytics, is_enabled ? "enabled" : "disabled",
is_enabled ? "disable" : "enable", kParticipatingTools, tool_info.tool_name,
is_enabled ? tool_info.disable_args : tool_info.enable_args, analytics_list)
<< std::endl;
}
void ShowAlready(AnalyticsStatus status) {
std::cout << fxl::Substitute(kMessageShowAlready,
status == AnalyticsStatus::kEnabled ? "enabled" : "disabled")
<< std::endl;
}
void ShowChangedTo(AnalyticsStatus status) {
std::cout << fxl::Substitute(kMessageShowChangedTo,
status == AnalyticsStatus::kEnabled ? "enabled" : "disabled")
<< std::endl;
}
} // namespace analytics::core_dev_tools::internal