OLD | NEW |
---|---|
(Empty) | |
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. | |
4 | |
5 #include "base/android/activity_status.h" | |
6 | |
7 #include <jni.h> | |
8 | |
9 #include "base/memory/singleton.h" | |
gavinp
2013/04/26 07:37:53
Not needed, the header already has this.
digit1
2013/04/26 12:32:40
Done.
| |
10 #include "jni/ActivityStatus_jni.h" | |
11 | |
12 namespace base { | |
13 namespace android { | |
14 | |
15 ActivityStatus::StateListener::StateListener() { | |
16 ActivityStatus::GetInstance()->RegisterStateListener(this); | |
17 } | |
18 | |
19 ActivityStatus::StateListener::~StateListener() { | |
20 ActivityStatus::GetInstance()->UnregisterStateListener(this); | |
21 } | |
22 | |
23 // static | |
24 ActivityStatus* ActivityStatus::GetInstance() { | |
25 return Singleton | |
26 <ActivityStatus, LeakySingletonTraits<ActivityStatus> >::get(); | |
27 } | |
28 | |
29 ActivityStatus::ActivityStatus() | |
gavinp
2013/04/26 07:37:53
Method order: methods in .cc files should be in th
digit1
2013/04/26 12:32:40
Done.
| |
30 : observers_(new ObserverListThreadSafe<StateListener>()) { | |
31 Java_ActivityStatus_registerThreadSafeNativeStateListener( | |
32 base::android::AttachCurrentThread()); | |
33 } | |
34 | |
35 void ActivityStatus::RegisterStateListener(StateListener* state_listener) { | |
36 observers_->AddObserver(state_listener); | |
37 } | |
38 | |
39 void ActivityStatus::UnregisterStateListener(StateListener* state_listener) { | |
40 observers_->RemoveObserver(state_listener); | |
41 } | |
42 | |
43 void ActivityStatus::OnActivityStateChange(ActivityState new_state) { | |
44 observers_->Notify( | |
45 &ActivityStatus::StateListener::OnActivityStateChange, | |
46 new_state); | |
47 } | |
48 | |
49 static void OnActivityStateChange(JNIEnv* env, jclass clazz, int new_state) { | |
50 ActivityStatus* activity_status = ActivityStatus::GetInstance(); | |
51 ActivityState activity_state = static_cast<ActivityState>(new_state); | |
52 activity_status->OnActivityStateChange(activity_state); | |
53 } | |
54 | |
55 bool ActivityStatus::RegisterBindings(JNIEnv* env) { | |
56 return RegisterNativesImpl(env); | |
57 } | |
58 | |
59 } // namespace android | |
60 } // namespace base | |
OLD | NEW |