data_promo_notification.cc revision a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/chromeos/status/data_promo_notification.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
73551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "ash/system/chromeos/network/network_connect.h"
8424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)#include "ash/system/system_notifier.h"
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/prefs/pref_registry_simple.h"
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/prefs/pref_service.h"
11868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/utf_string_conversions.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/browser_process.h"
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/chromeos/login/helper.h"
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/chromeos/mobile_config.h"
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/profiles/profile.h"
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/profiles/profile_manager.h"
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/browser.h"
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/browser_list.h"
190f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)#include "chrome/browser/ui/scoped_tabbed_browser_displayer.h"
203551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "chrome/browser/ui/singleton_tabs.h"
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/common/pref_names.h"
22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chromeos/login/login_state.h"
233551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "chromeos/network/device_state.h"
243551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "chromeos/network/network_connection_handler.h"
253551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "chromeos/network/network_event_log.h"
263551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "chromeos/network/network_state.h"
273551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "chromeos/network/network_state_handler.h"
283551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "grit/ash_resources.h"
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "grit/generated_resources.h"
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "grit/theme_resources.h"
313551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "third_party/cros_system_api/dbus/service_constants.h"
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/base/l10n/l10n_util.h"
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/base/resource/resource_bundle.h"
343551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "ui/message_center/message_center.h"
353551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "ui/message_center/notification.h"
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/views/view.h"
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/views/widget/widget.h"
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
393551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)namespace chromeos {
403551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace {
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const int kNotificationCountPrefDefault = -1;
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool GetBooleanPref(const char* pref_name) {
46a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  Profile* profile = ProfileManager::GetPrimaryUserProfileOrOffTheRecord();
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PrefService* prefs = profile->GetPrefs();
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return prefs->GetBoolean(pref_name);
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int GetIntegerLocalPref(const char* pref_name) {
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PrefService* prefs = g_browser_process->local_state();
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return prefs->GetInteger(pref_name);
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void SetBooleanPref(const char* pref_name, bool value) {
57a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  Profile* profile = ProfileManager::GetPrimaryUserProfileOrOffTheRecord();
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PrefService* prefs = profile->GetPrefs();
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  prefs->SetBoolean(pref_name, value);
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void SetIntegerLocalPref(const char* pref_name, int value) {
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PrefService* prefs = g_browser_process->local_state();
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  prefs->SetInteger(pref_name, value);
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
673551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// Returns prefs::kShow3gPromoNotification or false if no active browser.
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ShouldShow3gPromoNotification() {
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return GetBooleanPref(prefs::kShow3gPromoNotification);
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void SetShow3gPromoNotification(bool value) {
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SetBooleanPref(prefs::kShow3gPromoNotification, value);
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns prefs::kCarrierDealPromoShown which is number of times
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// carrier deal notification has been shown to users on this machine.
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int GetCarrierDealPromoShown() {
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return GetIntegerLocalPref(prefs::kCarrierDealPromoShown);
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void SetCarrierDealPromoShown(int value) {
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SetIntegerLocalPref(prefs::kCarrierDealPromoShown, value);
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const chromeos::MobileConfig::Carrier* GetCarrier(
873551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    const NetworkState* cellular) {
883551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  const DeviceState* device = NetworkHandler::Get()->network_state_handler()->
893551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)      GetDeviceState(cellular->device_path());
903551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  std::string carrier_id = device ? device->home_provider_id() : "";
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (carrier_id.empty()) {
923551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    NET_LOG_ERROR("Empty carrier ID for cellular network",
933551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)                  device ? device->path(): "No device");
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    return NULL;
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  chromeos::MobileConfig* config = chromeos::MobileConfig::GetInstance();
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (!config->IsReady())
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    return NULL;
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return config->GetCarrier(carrier_id);
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const chromeos::MobileConfig::CarrierDeal* GetCarrierDeal(
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const chromeos::MobileConfig::Carrier* carrier) {
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  const chromeos::MobileConfig::CarrierDeal* deal = carrier->GetDefaultDeal();
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (deal) {
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    // Check deal for validity.
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    int carrier_deal_promo_pref = GetCarrierDealPromoShown();
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if (carrier_deal_promo_pref >= deal->notification_count())
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      return NULL;
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const std::string locale = g_browser_process->GetApplicationLocale();
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    std::string deal_text = deal->GetLocalizedString(locale,
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                                     "notification_text");
1153551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    NET_LOG_DEBUG("Carrier Deal Found", deal_text);
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if (deal_text.empty())
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      return NULL;
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return deal;
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1223551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)void NotificationClicked(const std::string& service_path,
1233551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)                         const std::string& info_url) {
1243551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  if (info_url.empty())
1253551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    ash::network_connect::ShowNetworkSettings(service_path);
1263551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
1270f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)  chrome::ScopedTabbedBrowserDisplayer displayer(
128a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      ProfileManager::GetPrimaryUserProfileOrOffTheRecord(),
1293551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)      chrome::HOST_DESKTOP_TYPE_ASH);
1300f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)  chrome::ShowSingletonTab(displayer.browser(), GURL(info_url));
1313551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)}
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1333551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)}  // namespace
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)////////////////////////////////////////////////////////////////////////////////
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// DataPromoNotification
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)DataPromoNotification::DataPromoNotification()
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    : check_for_promo_(true),
140c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      weak_ptr_factory_(this) {
1413551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  NetworkHandler::Get()->network_state_handler()->AddObserver(this, FROM_HERE);
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)DataPromoNotification::~DataPromoNotification() {
1453551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  if (NetworkHandler::IsInitialized()) {
1463551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    NetworkHandler::Get()->network_state_handler()->RemoveObserver(
1473551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)        this, FROM_HERE);
1483551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  }
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void DataPromoNotification::RegisterPrefs(PrefRegistrySimple* registry) {
1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Carrier deal notification shown count defaults to 0.
1532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  registry->RegisterIntegerPref(prefs::kCarrierDealPromoShown, 0);
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1563551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)void DataPromoNotification::NetworkPropertiesUpdated(
1573551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    const NetworkState* network) {
15868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  if (!network || network->type() != shill::kTypeCellular)
1593551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    return;
1603551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  ShowOptionalMobileDataPromoNotification();
1613551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)}
1623551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
1633551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)void DataPromoNotification::DefaultNetworkChanged(const NetworkState* network) {
1643551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  // Call NetworkPropertiesUpdated in case the Cellular network became the
1653551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  // default network.
1663551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  NetworkPropertiesUpdated(network);
1673551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)}
1683551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
1693551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)void DataPromoNotification::ShowOptionalMobileDataPromoNotification() {
1703551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  // Display a one-time notification for authenticated users on first use
1713551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  // of Mobile Data connection or if there is a carrier deal defined
1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // show that even if user has already seen generic promo.
1733551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  if (!check_for_promo_ || !LoginState::Get()->IsUserAuthenticated())
1743551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    return;
1753551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  const NetworkState* default_network =
1763551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)      NetworkHandler::Get()->network_state_handler()->DefaultNetwork();
17768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  if (!default_network || default_network->type() != shill::kTypeCellular)
1783551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    return;
1793551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  // When requesting a network connection, do not show the notification.
1803551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  if (NetworkHandler::Get()->network_connection_handler()->
1813551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)      HasPendingConnectRequest())
1823551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    return;
1833551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
1843551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  int carrier_deal_promo_pref = kNotificationCountPrefDefault;
1853551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  const MobileConfig::CarrierDeal* deal = NULL;
1863551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  const MobileConfig::Carrier* carrier = GetCarrier(default_network);
1873551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  if (carrier)
1883551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    deal = GetCarrierDeal(carrier);
1893551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
190a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  base::string16 message = l10n_util::GetStringUTF16(IDS_3G_NOTIFICATION_MESSAGE);
1913551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  std::string info_url;
1923551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  if (deal) {
1933551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    carrier_deal_promo_pref = GetCarrierDealPromoShown();
1943551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    const std::string locale = g_browser_process->GetApplicationLocale();
1953551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    std::string deal_text =
1963551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)        deal->GetLocalizedString(locale, "notification_text");
1973551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    message = UTF8ToUTF16(deal_text + "\n\n") + message;
1983551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    info_url = deal->info_url();
1993551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    if (info_url.empty() && carrier)
2003551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)      info_url = carrier->top_up_url();
2013551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  } else if (!ShouldShow3gPromoNotification()) {
2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    check_for_promo_ = false;
2033551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    return;
2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2063551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  int icon_id;
20768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  if (default_network->network_technology() == shill::kNetworkTechnologyLte)
2083551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    icon_id = IDR_AURA_UBER_TRAY_NOTIFICATION_LTE;
2093551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  else
2103551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    icon_id = IDR_AURA_UBER_TRAY_NOTIFICATION_3G;
2113551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  const gfx::Image& icon =
2123551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)      ui::ResourceBundle::GetSharedInstance().GetImageNamed(icon_id);
2133551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
2143551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  message_center::MessageCenter::Get()->AddNotification(
2153551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)      message_center::Notification::CreateSystemNotification(
2163551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)          ash::network_connect::kNetworkActivateNotificationId,
2173551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)          base::string16() /* title */,
2183551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)          message,
2193551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)          icon,
220a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)          ash::system_notifier::kNotifierNetwork,
2213551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)          base::Bind(&NotificationClicked,
2223551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)                     default_network->path(), info_url)));
2233551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
2243551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  check_for_promo_ = false;
2253551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  SetShow3gPromoNotification(false);
2263551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  if (carrier_deal_promo_pref != kNotificationCountPrefDefault)
2273551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    SetCarrierDealPromoShown(carrier_deal_promo_pref + 1);
2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace chromeos
231