Skip to content

Commit

Permalink
[IOS][Language] Language Settings - Histograms
Browse files Browse the repository at this point in the history
Adds histograms for page impressions and actions identical to Android's.

Bug: 957688
Change-Id: I5985cca226c0ec15cdd67ed4dcf99a73a8876e9f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1628031
Reviewed-by: Jesse Doherty <jwd@chromium.org>
Reviewed-by: Peter Lee <pkl@chromium.org>
Commit-Queue: Moe Ahmadi <mahmadi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#663741}
  • Loading branch information
Moe Ahmadi authored and Commit Bot committed May 28, 2019
1 parent 247f7b5 commit a80f24f
Show file tree
Hide file tree
Showing 7 changed files with 85 additions and 0 deletions.
1 change: 1 addition & 0 deletions ios/chrome/browser/ui/settings/language/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ source_set("language_ui") {
"language_settings_commands.h",
"language_settings_consumer.h",
"language_settings_data_source.h",
"language_settings_histograms.h",
"language_settings_table_view_controller.h",
"language_settings_table_view_controller.mm",
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@
#import "ios/chrome/browser/ui/settings/language/add_language_table_view_controller.h"

#include "base/mac/foundation_util.h"
#include "base/metrics/histogram_macros.h"
#import "ios/chrome/browser/ui/list_model/list_item+Controller.h"
#import "ios/chrome/browser/ui/settings/language/cells/language_item.h"
#import "ios/chrome/browser/ui/settings/language/language_settings_data_source.h"
#import "ios/chrome/browser/ui/settings/language/language_settings_histograms.h"
#import "ios/chrome/browser/ui/table_view/table_view_navigation_controller_constants.h"
#include "ios/chrome/browser/ui/ui_feature_flags.h"
#import "ios/chrome/browser/ui/util/uikit_ui_util.h"
Expand Down Expand Up @@ -75,6 +77,9 @@ - (instancetype)initWithDataSource:(id<LanguageSettingsDataSource>)dataSource
if (self) {
_dataSource = dataSource;
_delegate = delegate;

UMA_HISTOGRAM_ENUMERATION(kLanguageSettingsPageImpressionHistogram,
LanguageSettingsPages::PAGE_ADD_LANGUAGE);
}
return self;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@
#import "ios/chrome/browser/ui/settings/language/language_details_table_view_controller.h"

#include "base/feature_list.h"
#include "base/metrics/histogram_macros.h"
#import "ios/chrome/browser/ui/settings/cells/settings_cells_constants.h"
#import "ios/chrome/browser/ui/settings/language/cells/language_item.h"
#import "ios/chrome/browser/ui/settings/language/language_settings_data_source.h"
#import "ios/chrome/browser/ui/settings/language/language_settings_histograms.h"
#import "ios/chrome/browser/ui/table_view/cells/table_view_cells_constants.h"
#import "ios/chrome/browser/ui/table_view/cells/table_view_text_item.h"
#include "ios/chrome/browser/ui/ui_feature_flags.h"
Expand Down Expand Up @@ -62,6 +64,9 @@ - (instancetype)initWithLanguageItem:(LanguageItem*)languageItem
if (self) {
_languageItem = languageItem;
_delegate = delegate;

UMA_HISTOGRAM_ENUMERATION(kLanguageSettingsPageImpressionHistogram,
LanguageSettingsPages::PAGE_LANGUAGE_DETAILS);
}
return self;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
// Copyright 2019 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.

#ifndef IOS_CHROME_BROWSER_UI_SETTINGS_LANGUAGE_LANGUAGE_SETTINGS_HISTOGRAMS_H_
#define IOS_CHROME_BROWSER_UI_SETTINGS_LANGUAGE_LANGUAGE_SETTINGS_HISTOGRAMS_H_

// UMA histogram names. These constants are repeated in LanguagesManager.java.
const char kLanguageSettingsPageImpressionHistogram[] =
"LanguageSettings.PageImpression";
const char kLanguageSettingsActionsHistogram[] = "LanguageSettings.Actions";

// Enum for the LanguageSettings.PageImpression histogram. These constants are
// repeated in LanguagesManager.java.
// Note: This enum is append-only. Keep in sync with "LanguageSettingsPageType"
// in src/tools/metrics/histograms/enums.xml.
enum class LanguageSettingsPages {
PAGE_MAIN = 0,
PAGE_ADD_LANGUAGE = 1,
PAGE_LANGUAGE_DETAILS = 2,
kMaxValue = PAGE_LANGUAGE_DETAILS,
};

// Enum for the LanguageSettings.Actions histogram. These constants are repeated
// in LanguagesManager.java.
// Note: This enum is append-only. Keep in sync with
// "LanguageSettingsActionType" in src/tools/metrics/histograms/enums.xml.
enum class LanguageSettingsActions {
UNKNOWN = 0, // Never logged.
CLICK_ON_ADD_LANGUAGE = 1,
LANGUAGE_ADDED = 2,
LANGUAGE_REMOVED = 3,
DISABLE_TRANSLATE_GLOBALLY = 4,
ENABLE_TRANSLATE_GLOBALLY = 5,
DISABLE_TRANSLATE_FOR_SINGLE_LANGUAGE = 6,
ENABLE_TRANSLATE_FOR_SINGLE_LANGUAGE = 7,
LANGUAGE_LIST_REORDERED = 8,
kMaxValue = LANGUAGE_LIST_REORDERED,
};

#endif // IOS_CHROME_BROWSER_UI_SETTINGS_LANGUAGE_LANGUAGE_SETTINGS_HISTOGRAMS_H_
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

#include "base/logging.h"
#include "base/mac/foundation_util.h"
#include "base/metrics/histogram_macros.h"
#include "base/strings/sys_string_conversions.h"
#include "components/language/core/browser/language_model_manager.h"
#include "components/language/core/browser/pref_names.h"
Expand All @@ -24,6 +25,7 @@
#include "ios/chrome/browser/translate/translate_service_ios.h"
#import "ios/chrome/browser/ui/settings/language/cells/language_item.h"
#import "ios/chrome/browser/ui/settings/language/language_settings_consumer.h"
#import "ios/chrome/browser/ui/settings/language/language_settings_histograms.h"
#import "ios/chrome/browser/ui/settings/utils/observable_boolean.h"
#import "ios/chrome/browser/ui/settings/utils/pref_backed_boolean.h"
#include "ios/chrome/grit/ios_strings.h"
Expand Down Expand Up @@ -210,6 +212,11 @@ - (BOOL)translateEnabled {

- (void)setTranslateEnabled:(BOOL)enabled {
[self.translateEnabledPref setValue:enabled];

UMA_HISTOGRAM_ENUMERATION(
kLanguageSettingsActionsHistogram,
enabled ? LanguageSettingsActions::ENABLE_TRANSLATE_GLOBALLY
: LanguageSettingsActions::DISABLE_TRANSLATE_GLOBALLY);
}

- (void)moveLanguage:(const std::string&)languageCode
Expand All @@ -222,22 +229,39 @@ - (void)moveLanguage:(const std::string&)languageCode
_translatePrefs->GetLanguageList(&languageCodes);
_translatePrefs->RearrangeLanguage(languageCode, where, offset,
languageCodes);

UMA_HISTOGRAM_ENUMERATION(kLanguageSettingsActionsHistogram,
LanguageSettingsActions::LANGUAGE_LIST_REORDERED);
}

- (void)addLanguage:(const std::string&)languageCode {
_translatePrefs->AddToLanguageList(languageCode, /*force_blocked=*/false);

UMA_HISTOGRAM_ENUMERATION(kLanguageSettingsActionsHistogram,
LanguageSettingsActions::LANGUAGE_ADDED);
}

- (void)removeLanguage:(const std::string&)languageCode {
_translatePrefs->RemoveFromLanguageList(languageCode);

UMA_HISTOGRAM_ENUMERATION(kLanguageSettingsActionsHistogram,
LanguageSettingsActions::LANGUAGE_REMOVED);
}

- (void)blockLanguage:(const std::string&)languageCode {
_translatePrefs->BlockLanguage(languageCode);

UMA_HISTOGRAM_ENUMERATION(
kLanguageSettingsActionsHistogram,
LanguageSettingsActions::DISABLE_TRANSLATE_FOR_SINGLE_LANGUAGE);
}

- (void)unblockLanguage:(const std::string&)languageCode {
_translatePrefs->UnblockLanguage(languageCode);

UMA_HISTOGRAM_ENUMERATION(
kLanguageSettingsActionsHistogram,
LanguageSettingsActions::ENABLE_TRANSLATE_FOR_SINGLE_LANGUAGE);
}

#pragma mark - Private methods
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

#include "base/logging.h"
#include "base/mac/foundation_util.h"
#include "base/metrics/histogram_macros.h"
#import "ios/chrome/browser/ui/list_model/list_item+Controller.h"
#import "ios/chrome/browser/ui/settings/cells/settings_cells_constants.h"
#import "ios/chrome/browser/ui/settings/cells/settings_switch_cell.h"
Expand All @@ -15,6 +16,7 @@
#import "ios/chrome/browser/ui/settings/language/language_details_table_view_controller.h"
#import "ios/chrome/browser/ui/settings/language/language_settings_commands.h"
#import "ios/chrome/browser/ui/settings/language/language_settings_data_source.h"
#import "ios/chrome/browser/ui/settings/language/language_settings_histograms.h"
#import "ios/chrome/browser/ui/table_view/cells/table_view_cells_constants.h"
#import "ios/chrome/browser/ui/table_view/cells/table_view_link_header_footer_item.h"
#import "ios/chrome/browser/ui/table_view/cells/table_view_text_item.h"
Expand Down Expand Up @@ -87,6 +89,9 @@ - (instancetype)initWithDataSource:(id<LanguageSettingsDataSource>)dataSource
if (self) {
_dataSource = dataSource;
_commandHandler = commandHandler;

UMA_HISTOGRAM_ENUMERATION(kLanguageSettingsPageImpressionHistogram,
LanguageSettingsPages::PAGE_MAIN);
}
return self;
}
Expand Down Expand Up @@ -199,6 +204,9 @@ - (void)tableView:(UITableView*)tableView
break;
}
case ItemTypeAddLanguage: {
UMA_HISTOGRAM_ENUMERATION(kLanguageSettingsActionsHistogram,
LanguageSettingsActions::CLICK_ON_ADD_LANGUAGE);

AddLanguageTableViewController* viewController =
[[AddLanguageTableViewController alloc]
initWithDataSource:self.dataSource
Expand Down
1 change: 1 addition & 0 deletions tools/metrics/histograms/enums.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32131,6 +32131,7 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<enum name="LanguageSettingsPageType">
<int value="0" label="Main"/>
<int value="1" label="Add Language"/>
<int value="2" label="Language Details">iOS only.</int>
</enum>

<enum name="LargestContentType">
Expand Down

0 comments on commit a80f24f

Please sign in to comment.