Skip to content

Commit

Permalink
Convert chromeos::AssistantOptInFlowStatus to enum class
Browse files Browse the repository at this point in the history
This CL converts chromeos::AssistantOptInFlowStatus to enum class to
avoid conflict with ash::UserLoginType::kMaxValue when it is migrated
to namespace ash.

This CL is part of the Chrome OS source code directory migration:
https://docs.google.com/document/d/1g-98HpzA8XcoGBWUv1gQNr4rbnD5yfvbtYZyPDDbkaE.

Bug: 1164001
Change-Id: If0237e6de6a39d9ef2981ab5bd3d510a26dee239
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3990090
Commit-Queue: Yeunjoo Choi <ychoi@igalia.com>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Yue Li <updowndota@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1068938}
  • Loading branch information
duswnchl authored and Chromium LUCI CQ committed Nov 9, 2022
1 parent 38ffbd2 commit db054e6
Show file tree
Hide file tree
Showing 4 changed files with 71 additions and 72 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,8 @@ void AssistantOptInFlowScreenHandler::OnSpeakerIdEnrollmentDone() {

void AssistantOptInFlowScreenHandler::OnSpeakerIdEnrollmentFailure() {
StopSpeakerIdEnrollment();
RecordAssistantOptInStatus(VOICE_MATCH_ENROLLMENT_ERROR);
RecordAssistantOptInStatus(
AssistantOptInFlowStatus::kVoiceMatchEnrollmentError);
voice_match_enrollment_error_ = true;
CallExternalAPI("onVoiceMatchUpdate", "failure");
LOG(ERROR) << "Speaker ID enrollment failure.";
Expand Down Expand Up @@ -285,8 +286,9 @@ void AssistantOptInFlowScreenHandler::OnActivityControlOptInResult(

void AssistantOptInFlowScreenHandler::OnScreenContextOptInResult(
bool opted_in) {
RecordAssistantOptInStatus(opted_in ? RELATED_INFO_ACCEPTED
: RELATED_INFO_SKIPPED);
RecordAssistantOptInStatus(
opted_in ? AssistantOptInFlowStatus::kRelatedInfoAccepted
: AssistantOptInFlowStatus::kRelatedInfoSkipped);
PrefService* prefs = ProfileManager::GetActiveUserProfile()->GetPrefs();
prefs->SetBoolean(assistant::prefs::kAssistantContextEnabled, opted_in);
}
Expand Down Expand Up @@ -407,7 +409,7 @@ void AssistantOptInFlowScreenHandler::OnGetSettingsResponse(

DCHECK(settings_ui.has_consent_flow_ui());

RecordAssistantOptInStatus(FLOW_STARTED);
RecordAssistantOptInStatus(AssistantOptInFlowStatus::kFlowStarted);

base::Value::List zippy_data;
bool skip_activity_control = true;
Expand Down Expand Up @@ -552,12 +554,14 @@ void AssistantOptInFlowScreenHandler::HandleVoiceMatchScreenUserAction(
PrefService* prefs = ProfileManager::GetActiveUserProfile()->GetPrefs();

if (action == kVoiceMatchDone) {
RecordAssistantOptInStatus(VOICE_MATCH_ENROLLMENT_DONE);
RecordAssistantOptInStatus(
AssistantOptInFlowStatus::kVoiceMatchEnrollmentDone);
voice_match_enrollment_done_ = true;
voice_match_enrollment_error_ = false;
ShowNextScreen();
} else if (action == kSkipPressed) {
RecordAssistantOptInStatus(VOICE_MATCH_ENROLLMENT_SKIPPED);
RecordAssistantOptInStatus(
AssistantOptInFlowStatus::kVoiceMatchEnrollmentSkipped);
// Disable hotword for user if voice match enrollment has not completed.
// No need to disable for retrain flow since user has a model.
// No need to disable if there's error during the enrollment.
Expand Down Expand Up @@ -585,15 +589,15 @@ void AssistantOptInFlowScreenHandler::HandleVoiceMatchScreenUserAction(
}

void AssistantOptInFlowScreenHandler::HandleValuePropScreenShown() {
RecordAssistantOptInStatus(ACTIVITY_CONTROL_SHOWN);
RecordAssistantOptInStatus(AssistantOptInFlowStatus::kActivityControlShown);
}

void AssistantOptInFlowScreenHandler::HandleRelatedInfoScreenShown() {
RecordAssistantOptInStatus(RELATED_INFO_SHOWN);
RecordAssistantOptInStatus(AssistantOptInFlowStatus::kRelatedInfoShown);
}

void AssistantOptInFlowScreenHandler::HandleVoiceMatchScreenShown() {
RecordAssistantOptInStatus(VOICE_MATCH_SHOWN);
RecordAssistantOptInStatus(AssistantOptInFlowStatus::kVoiceMatchShown);
}

void AssistantOptInFlowScreenHandler::HandleLoadingTimeout() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,9 @@ AssistantNativeIconType SettingIdToIconType(
} // namespace

void RecordAssistantOptInStatus(AssistantOptInFlowStatus status) {
UMA_HISTOGRAM_ENUMERATION("Assistant.OptInFlowStatus", status, kMaxValue + 1);
UMA_HISTOGRAM_ENUMERATION(
"Assistant.OptInFlowStatus", status,
static_cast<int>(AssistantOptInFlowStatus::kMaxValue) + 1);
}

void RecordAssistantActivityControlOptInStatus(
Expand All @@ -87,15 +89,16 @@ void RecordAssistantActivityControlOptInStatus(
switch (setting_type) {
case AssistantActivityControlConsent::ALL:
case AssistantActivityControlConsent::SETTING_TYPE_UNSPECIFIED:
status = opted_in ? ACTIVITY_CONTROL_ACCEPTED : ACTIVITY_CONTROL_SKIPPED;
status = opted_in ? AssistantOptInFlowStatus::kActivityControlAccepted
: AssistantOptInFlowStatus::kActivityControlSkipped;
break;
case AssistantActivityControlConsent::WEB_AND_APP_ACTIVITY:
status = opted_in ? ACTIVITY_CONTROL_WAA_ACCEPTED
: ACTIVITY_CONTROL_WAA_SKIPPED;
status = opted_in ? AssistantOptInFlowStatus::kActivityControlWaaAccepted
: AssistantOptInFlowStatus::kActivityControlWaaSkipped;
break;
case AssistantActivityControlConsent::DEVICE_APPS:
status =
opted_in ? ACTIVITY_CONTROL_DA_ACCEPTED : ACTIVITY_CONTROL_DA_SKIPPED;
status = opted_in ? AssistantOptInFlowStatus::kActivityControlDaAccepted
: AssistantOptInFlowStatus::kActivityControlDaSkipped;
break;
}
RecordAssistantOptInStatus(status);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,32 +18,32 @@ namespace chromeos {

// Type of Assistant opt-in flow status. This enum is used to back an UMA
// histogram and should be treated as append-only.
enum AssistantOptInFlowStatus {
FLOW_STARTED = 0,
ACTIVITY_CONTROL_SHOWN = 1,
ACTIVITY_CONTROL_ACCEPTED = 2,
ACTIVITY_CONTROL_SKIPPED = 3,
THIRD_PARTY_SHOWN = 4,
THIRD_PARTY_CONTINUED = 5,
GET_MORE_SHOWN = 6,
EMAIL_OPTED_IN = 7,
EMAIL_OPTED_OUT = 8,
GET_MORE_CONTINUED = 9,
READY_SCREEN_SHOWN = 10,
READY_SCREEN_CONTINUED = 11,
VOICE_MATCH_SHOWN = 12,
VOICE_MATCH_ENROLLMENT_DONE = 13,
VOICE_MATCH_ENROLLMENT_SKIPPED = 14,
VOICE_MATCH_ENROLLMENT_ERROR = 15,
RELATED_INFO_SHOWN = 16,
RELATED_INFO_ACCEPTED = 17,
RELATED_INFO_SKIPPED = 18,
ACTIVITY_CONTROL_DA_ACCEPTED = 19,
ACTIVITY_CONTROL_DA_SKIPPED = 20,
ACTIVITY_CONTROL_WAA_ACCEPTED = 21,
ACTIVITY_CONTROL_WAA_SKIPPED = 22,
enum class AssistantOptInFlowStatus {
kFlowStarted = 0,
kActivityControlShown = 1,
kActivityControlAccepted = 2,
kActivityControlSkipped = 3,
kThirdPartyShown = 4,
kThirdPartyContinued = 5,
kGetMoreShown = 6,
kEmailOptedIn = 7,
kEmailOptedOut = 8,
kGetMoreContinued = 9,
kReadyScreenShown = 10,
kReadyScreenContinued = 11,
kVoiceMatchShown = 12,
kVoiceMatchEnrollmentDone = 13,
kVoiceMatchEnrollmentSkipped = 14,
kVoiceMatchEnrollmentError = 15,
kRelatedInfoShown = 16,
kRelatedInfoAccepted = 17,
kRelatedInfoSkipped = 18,
kActivityControlDaAccepted = 19,
kActivityControlDaSkipped = 20,
kActivityControlWaaAccepted = 21,
kActivityControlWaaSkipped = 22,
// Magic constant used by the histogram macros.
kMaxValue = ACTIVITY_CONTROL_WAA_SKIPPED
kMaxValue = kActivityControlWaaSkipped
};

void RecordAssistantOptInStatus(AssistantOptInFlowStatus);
Expand Down Expand Up @@ -95,9 +95,8 @@ GetActivityControlConsentSettingType(const SettingZippyList& setting_zippys);

// TODO(https://crbug.com/1164001): remove when it moved to ash.
namespace ash {
using ::chromeos::ACTIVITY_CONTROL_SHOWN;
using ::chromeos::AssistantOptInFlowStatus;
using ::chromeos::CreateZippyData;
using ::chromeos::FLOW_STARTED;
using ::chromeos::GetActivityControlConsentSettingType;
using ::chromeos::GetSettingsUiSelector;
using ::chromeos::GetSettingsUiStrings;
Expand All @@ -106,13 +105,6 @@ using ::chromeos::IsHotwordDspAvailable;
using ::chromeos::IsVoiceMatchEnforcedOff;
using ::chromeos::RecordActivityControlConsent;
using ::chromeos::RecordAssistantActivityControlOptInStatus;
using ::chromeos::RELATED_INFO_ACCEPTED;
using ::chromeos::RELATED_INFO_SHOWN;
using ::chromeos::RELATED_INFO_SKIPPED;
using ::chromeos::VOICE_MATCH_ENROLLMENT_DONE;
using ::chromeos::VOICE_MATCH_ENROLLMENT_ERROR;
using ::chromeos::VOICE_MATCH_ENROLLMENT_SKIPPED;
using ::chromeos::VOICE_MATCH_SHOWN;
} // namespace ash

#endif // CHROME_BROWSER_UI_WEBUI_CHROMEOS_ASSISTANT_OPTIN_ASSISTANT_OPTIN_UTILS_H_
46 changes: 23 additions & 23 deletions tools/metrics/histograms/enums.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5081,29 +5081,29 @@ others/histograms.xml -->
</enum>

<enum name="AssistantOptInFlowStatus">
<int value="0" label="FLOW_STARTED"/>
<int value="1" label="ACTIVITY_CONTROL_SHOWN"/>
<int value="2" label="ACTIVITY_CONTROL_ACCEPTED"/>
<int value="3" label="ACTIVITY_CONTROL_SKIPPED"/>
<int value="4" label="THIRD_PARTY_SHOWN"/>
<int value="5" label="THIRD_PARTY_CONTINUED"/>
<int value="6" label="GET_MORE_SHOWN"/>
<int value="7" label="EMAIL_OPTED_IN"/>
<int value="8" label="EMAIL_OPTED_OUT"/>
<int value="9" label="GET_MORE_CONTINUED"/>
<int value="10" label="READY_SCREEN_SHOWN"/>
<int value="11" label="READY_SCREEN_CONTINUED"/>
<int value="12" label="VOICE_MATCH_SHOWN"/>
<int value="13" label="VOICE_MATCH_ENROLLMENT_DONE"/>
<int value="14" label="VOICE_MATCH_ENROLLMENT_SKIPPED"/>
<int value="15" label="VOICE_MATCH_ENROLLMENT_ERROR"/>
<int value="16" label="RELATED_INFO_SHOWN"/>
<int value="17" label="RELATED_INFO_ACCEPTED"/>
<int value="18" label="RELATED_INFO_SKIPPED"/>
<int value="19" label="ACTIVITY_CONTROL_DA_ACCEPTED"/>
<int value="20" label="ACTIVITY_CONTROL_DA_SKIPPED"/>
<int value="21" label="ACTIVITY_CONTROL_WAA_ACCEPTED"/>
<int value="22" label="ACTIVITY_CONTROL_WAA_SKIPPED"/>
<int value="0" label="kFlowStarted"/>
<int value="1" label="kActivityControlShown"/>
<int value="2" label="kActivityControlAccepted"/>
<int value="3" label="kActivityControlSkipped"/>
<int value="4" label="kThirdPartyShown"/>
<int value="5" label="kThirdPartyContinued"/>
<int value="6" label="kGetMoreShown"/>
<int value="7" label="kEmailOptedIn"/>
<int value="8" label="kEmailOptedOut"/>
<int value="9" label="kGetMoreContinued"/>
<int value="10" label="kReadyScreenShown"/>
<int value="11" label="kReadyScreenContinued"/>
<int value="12" label="kVoiceMatchShown"/>
<int value="13" label="kVoiceMatchEnrollmentDone"/>
<int value="14" label="kVoiceMatchEnrollmentSkipped"/>
<int value="15" label="kVoiceMatchEnrollmentError"/>
<int value="16" label="kRelatedInfoShown"/>
<int value="17" label="kRelatedInfoAccepted"/>
<int value="18" label="kRelatedInfoSkipped"/>
<int value="19" label="kActivityControlDaAccepted"/>
<int value="20" label="kActivityControlDaSkipped"/>
<int value="21" label="kActivityControlWaaAccepted"/>
<int value="22" label="kActivityControlWaaSkipped"/>
</enum>

<enum name="AssistantQueryResponseType">
Expand Down

0 comments on commit db054e6

Please sign in to comment.