Extension syncing: Introduce a NeedsSync pref
[chromium-blink-merge.git] / base / power_monitor / power_monitor_device_source_ios.mm
blobdc12f1c2952007200f227826c7e1ec046646dadd
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
3 // found in the LICENSE file.
5 #include "base/power_monitor/power_monitor_device_source.h"
7 #import <UIKit/UIKit.h>
9 namespace base {
11 void PowerMonitorDeviceSource::PlatformInit() {
12   NSNotificationCenter* nc = [NSNotificationCenter defaultCenter];
13   id foreground =
14       [nc addObserverForName:UIApplicationWillEnterForegroundNotification
15                       object:nil
16                        queue:nil
17                   usingBlock:^(NSNotification* notification) {
18                       ProcessPowerEvent(RESUME_EVENT);
19                   }];
20   id background =
21       [nc addObserverForName:UIApplicationDidEnterBackgroundNotification
22                       object:nil
23                        queue:nil
24                   usingBlock:^(NSNotification* notification) {
25                       ProcessPowerEvent(SUSPEND_EVENT);
26                   }];
27   notification_observers_.push_back(foreground);
28   notification_observers_.push_back(background);
31 void PowerMonitorDeviceSource::PlatformDestroy() {
32   NSNotificationCenter* nc = [NSNotificationCenter defaultCenter];
33   for (std::vector<id>::iterator it = notification_observers_.begin();
34        it != notification_observers_.end(); ++it) {
35     [nc removeObserver:*it];
36   }
37   notification_observers_.clear();
40 }  // namespace base