| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #import "ios/chrome/browser/ui/settings/content_settings_collection_view_control
ler.h" | 5 #import "ios/chrome/browser/ui/settings/content_settings_collection_view_control
ler.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "components/content_settings/core/browser/host_content_settings_map.h" | 8 #include "components/content_settings/core/browser/host_content_settings_map.h" |
| 9 #include "components/content_settings/core/common/content_settings.h" | 9 #include "components/content_settings/core/common/content_settings.h" |
| 10 #include "components/content_settings/core/common/content_settings_types.h" | 10 #include "components/content_settings/core/common/content_settings_types.h" |
| 11 #include "components/prefs/pref_change_registrar.h" | 11 #include "components/prefs/pref_change_registrar.h" |
| 12 #include "components/prefs/pref_service.h" | 12 #include "components/prefs/pref_service.h" |
| 13 #include "components/strings/grit/components_strings.h" | 13 #include "components/strings/grit/components_strings.h" |
| 14 #include "components/translate/core/browser/translate_pref_names.h" | 14 #include "components/translate/core/browser/translate_pref_names.h" |
| 15 #include "ios/chrome/browser/browser_state/chrome_browser_state.h" | 15 #include "ios/chrome/browser/browser_state/chrome_browser_state.h" |
| 16 #include "ios/chrome/browser/content_settings/host_content_settings_map_factory.
h" | 16 #include "ios/chrome/browser/content_settings/host_content_settings_map_factory.
h" |
| 17 #include "ios/chrome/browser/experimental_flags.h" | |
| 18 #import "ios/chrome/browser/prefs/pref_observer_bridge.h" | 17 #import "ios/chrome/browser/prefs/pref_observer_bridge.h" |
| 19 #import "ios/chrome/browser/ui/collection_view/cells/collection_view_detail_item
.h" | 18 #import "ios/chrome/browser/ui/collection_view/cells/collection_view_detail_item
.h" |
| 20 #import "ios/chrome/browser/ui/collection_view/collection_view_model.h" | 19 #import "ios/chrome/browser/ui/collection_view/collection_view_model.h" |
| 21 #import "ios/chrome/browser/ui/settings/block_popups_collection_view_controller.
h" | 20 #import "ios/chrome/browser/ui/settings/block_popups_collection_view_controller.
h" |
| 22 #import "ios/chrome/browser/ui/settings/compose_email_handler_collection_view_co
ntroller.h" | 21 #import "ios/chrome/browser/ui/settings/compose_email_handler_collection_view_co
ntroller.h" |
| 23 #import "ios/chrome/browser/ui/settings/settings_navigation_controller.h" | 22 #import "ios/chrome/browser/ui/settings/settings_navigation_controller.h" |
| 24 #import "ios/chrome/browser/ui/settings/translate_collection_view_controller.h" | 23 #import "ios/chrome/browser/ui/settings/translate_collection_view_controller.h" |
| 25 #import "ios/chrome/browser/ui/settings/utils/content_setting_backed_boolean.h" | 24 #import "ios/chrome/browser/ui/settings/utils/content_setting_backed_boolean.h" |
| 26 #include "ios/chrome/grit/ios_strings.h" | 25 #include "ios/chrome/grit/ios_strings.h" |
| 27 #import "ios/third_party/material_components_ios/src/components/CollectionCells/
src/MaterialCollectionCells.h" | 26 #import "ios/third_party/material_components_ios/src/components/CollectionCells/
src/MaterialCollectionCells.h" |
| (...skipping 23 matching lines...) Expand all Loading... |
| 51 BooleanObserver> { | 50 BooleanObserver> { |
| 52 // Pref observer to track changes to prefs. | 51 // Pref observer to track changes to prefs. |
| 53 std::unique_ptr<PrefObserverBridge> _prefObserverBridge; | 52 std::unique_ptr<PrefObserverBridge> _prefObserverBridge; |
| 54 // Registrar for pref changes notifications. | 53 // Registrar for pref changes notifications. |
| 55 PrefChangeRegistrar _prefChangeRegistrar; | 54 PrefChangeRegistrar _prefChangeRegistrar; |
| 56 | 55 |
| 57 // The observable boolean that binds to the "Disable Popups" setting state. | 56 // The observable boolean that binds to the "Disable Popups" setting state. |
| 58 ContentSettingBackedBoolean* _disablePopupsSetting; | 57 ContentSettingBackedBoolean* _disablePopupsSetting; |
| 59 | 58 |
| 60 // This object contains the list of available Mail client apps that can | 59 // This object contains the list of available Mail client apps that can |
| 61 // handle mailto: URLs. The value can be nil if mailto: URL rewriting is | 60 // handle mailto: URLs. |
| 62 // not available because of experimental settings. | |
| 63 MailtoURLRewriter* _mailtoURLRewriter; | 61 MailtoURLRewriter* _mailtoURLRewriter; |
| 64 | 62 |
| 65 // Updatable Items | 63 // Updatable Items |
| 66 CollectionViewDetailItem* _blockPopupsDetailItem; | 64 CollectionViewDetailItem* _blockPopupsDetailItem; |
| 67 CollectionViewDetailItem* _translateDetailItem; | 65 CollectionViewDetailItem* _translateDetailItem; |
| 68 CollectionViewDetailItem* _composeEmailDetailItem; | 66 CollectionViewDetailItem* _composeEmailDetailItem; |
| 69 } | 67 } |
| 70 | 68 |
| 71 // Returns the value for the default setting with ID |settingID|. | 69 // Returns the value for the default setting with ID |settingID|. |
| 72 - (ContentSetting)getContentSetting:(ContentSettingsType)settingID; | 70 - (ContentSetting)getContentSetting:(ContentSettingsType)settingID; |
| (...skipping 24 matching lines...) Expand all Loading... |
| 97 &_prefChangeRegistrar); | 95 &_prefChangeRegistrar); |
| 98 | 96 |
| 99 HostContentSettingsMap* settingsMap = | 97 HostContentSettingsMap* settingsMap = |
| 100 ios::HostContentSettingsMapFactory::GetForBrowserState(browserState); | 98 ios::HostContentSettingsMapFactory::GetForBrowserState(browserState); |
| 101 _disablePopupsSetting = [[ContentSettingBackedBoolean alloc] | 99 _disablePopupsSetting = [[ContentSettingBackedBoolean alloc] |
| 102 initWithHostContentSettingsMap:settingsMap | 100 initWithHostContentSettingsMap:settingsMap |
| 103 settingID:CONTENT_SETTINGS_TYPE_POPUPS | 101 settingID:CONTENT_SETTINGS_TYPE_POPUPS |
| 104 inverted:YES]; | 102 inverted:YES]; |
| 105 [_disablePopupsSetting setObserver:self]; | 103 [_disablePopupsSetting setObserver:self]; |
| 106 | 104 |
| 107 if (!experimental_flags::IsNativeAppLauncherEnabled()) { | 105 _mailtoURLRewriter = [[MailtoURLRewriter alloc] initWithStandardHandlers]; |
| 108 _mailtoURLRewriter = [[MailtoURLRewriter alloc] initWithStandardHandlers]; | 106 [_mailtoURLRewriter setObserver:self]; |
| 109 [_mailtoURLRewriter setObserver:self]; | |
| 110 } | |
| 111 | 107 |
| 112 [self loadModel]; | 108 [self loadModel]; |
| 113 } | 109 } |
| 114 return self; | 110 return self; |
| 115 } | 111 } |
| 116 | 112 |
| 117 - (void)dealloc { | 113 - (void)dealloc { |
| 118 [_disablePopupsSetting setObserver:nil]; | 114 [_disablePopupsSetting setObserver:nil]; |
| 119 } | 115 } |
| 120 | 116 |
| 121 - (instancetype)init { | 117 - (instancetype)init { |
| 122 NOTREACHED(); | 118 NOTREACHED(); |
| 123 return nil; | 119 return nil; |
| 124 } | 120 } |
| 125 | 121 |
| 126 - (void)loadModel { | 122 - (void)loadModel { |
| 127 [super loadModel]; | 123 [super loadModel]; |
| 128 | 124 |
| 129 CollectionViewModel* model = self.collectionViewModel; | 125 CollectionViewModel* model = self.collectionViewModel; |
| 130 [model addSectionWithIdentifier:SectionIdentifierSettings]; | 126 [model addSectionWithIdentifier:SectionIdentifierSettings]; |
| 131 [model addItem:[self blockPopupsItem] | 127 [model addItem:[self blockPopupsItem] |
| 132 toSectionWithIdentifier:SectionIdentifierSettings]; | 128 toSectionWithIdentifier:SectionIdentifierSettings]; |
| 133 [model addItem:[self translateItem] | 129 [model addItem:[self translateItem] |
| 134 toSectionWithIdentifier:SectionIdentifierSettings]; | 130 toSectionWithIdentifier:SectionIdentifierSettings]; |
| 135 if (!experimental_flags::IsNativeAppLauncherEnabled()) { | 131 [model addItem:[self composeEmailItem] |
| 136 [model addItem:[self composeEmailItem] | 132 toSectionWithIdentifier:SectionIdentifierSettings]; |
| 137 toSectionWithIdentifier:SectionIdentifierSettings]; | |
| 138 } | |
| 139 } | 133 } |
| 140 | 134 |
| 141 - (CollectionViewItem*)blockPopupsItem { | 135 - (CollectionViewItem*)blockPopupsItem { |
| 142 _blockPopupsDetailItem = [[CollectionViewDetailItem alloc] | 136 _blockPopupsDetailItem = [[CollectionViewDetailItem alloc] |
| 143 initWithType:ItemTypeSettingsBlockPopups]; | 137 initWithType:ItemTypeSettingsBlockPopups]; |
| 144 NSString* subtitle = [_disablePopupsSetting value] | 138 NSString* subtitle = [_disablePopupsSetting value] |
| 145 ? l10n_util::GetNSString(IDS_IOS_SETTING_ON) | 139 ? l10n_util::GetNSString(IDS_IOS_SETTING_ON) |
| 146 : l10n_util::GetNSString(IDS_IOS_SETTING_OFF); | 140 : l10n_util::GetNSString(IDS_IOS_SETTING_OFF); |
| 147 _blockPopupsDetailItem.text = l10n_util::GetNSString(IDS_IOS_BLOCK_POPUPS); | 141 _blockPopupsDetailItem.text = l10n_util::GetNSString(IDS_IOS_BLOCK_POPUPS); |
| 148 _blockPopupsDetailItem.detailText = subtitle; | 142 _blockPopupsDetailItem.detailText = subtitle; |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 245 #pragma mark - MailtoURLRewriterObserver | 239 #pragma mark - MailtoURLRewriterObserver |
| 246 | 240 |
| 247 - (void)rewriterDidChange:(MailtoURLRewriter*)rewriter { | 241 - (void)rewriterDidChange:(MailtoURLRewriter*)rewriter { |
| 248 if (rewriter != _mailtoURLRewriter) | 242 if (rewriter != _mailtoURLRewriter) |
| 249 return; | 243 return; |
| 250 _composeEmailDetailItem.detailText = [rewriter defaultHandlerName]; | 244 _composeEmailDetailItem.detailText = [rewriter defaultHandlerName]; |
| 251 [self reconfigureCellsForItems:@[ _composeEmailDetailItem ]]; | 245 [self reconfigureCellsForItems:@[ _composeEmailDetailItem ]]; |
| 252 } | 246 } |
| 253 | 247 |
| 254 @end | 248 @end |
| OLD | NEW |