Bumping manifests a=b2g-bump
[gecko.git] / dom / requestsync / RequestSyncWifiService.cpp
blob0b7c9968a70ee54354839373a247d6b5416d1557
1 /* -*- Mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; tab-width: 40 -*- */
2 /* vim: set ts=2 et sw=2 tw=80: */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
5 * You can obtain one at http://mozilla.org/MPL/2.0/. */
7 #include "RequestSyncWifiService.h"
8 #include "mozilla/ClearOnShutdown.h"
9 #include "mozilla/Services.h"
10 #include "mozilla/StaticPtr.h"
11 #include "nsIObserverService.h"
13 namespace mozilla {
14 namespace dom {
16 using namespace hal;
18 NS_IMPL_ISUPPORTS0(RequestSyncWifiService)
20 namespace {
22 StaticRefPtr<RequestSyncWifiService> sService;
24 } // anonymous namespace
26 /* static */ void
27 RequestSyncWifiService::Init()
29 nsRefPtr<RequestSyncWifiService> service = GetInstance();
30 if (!service) {
31 NS_WARNING("Failed to initialize RequestSyncWifiService.");
35 /* static */ already_AddRefed<RequestSyncWifiService>
36 RequestSyncWifiService::GetInstance()
38 if (!sService) {
39 sService = new RequestSyncWifiService();
40 hal::RegisterNetworkObserver(sService);
41 ClearOnShutdown(&sService);
44 nsRefPtr<RequestSyncWifiService> service = sService.get();
45 return service.forget();
48 void
49 RequestSyncWifiService::Notify(const hal::NetworkInformation& aNetworkInfo)
51 bool isWifi = aNetworkInfo.isWifi();
52 if (isWifi == mIsWifi) {
53 return;
56 mIsWifi = isWifi;
58 nsCOMPtr<nsIObserverService> obs = mozilla::services::GetObserverService();
59 if (obs) {
60 obs->NotifyObservers(nullptr, "wifi-state-changed",
61 mIsWifi ? MOZ_UTF16("enabled") :
62 MOZ_UTF16("disabled"));
66 } // dom namespace
67 } // mozilla namespace