| OLD | NEW | 
| (Empty) |  | 
 |   1 // Copyright 2016 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 #ifndef CONTENT_BROWSER_MEDIA_SESSION_MEDIA_SESSION_ANDROID_H_ | 
 |   6 #define CONTENT_BROWSER_MEDIA_SESSION_MEDIA_SESSION_ANDROID_H_ | 
 |   7  | 
 |   8 #include <memory> | 
 |   9 #include <vector> | 
 |  10  | 
 |  11 #include "base/android/scoped_java_ref.h" | 
 |  12 #include "content/browser/media/session/media_session.h" | 
 |  13 #include "content/browser/media/session/media_session_observer.h" | 
 |  14  | 
 |  15 namespace content { | 
 |  16  | 
 |  17 class MediaSession; | 
 |  18  | 
 |  19 // This class is interlayer between native MediaSession and Java | 
 |  20 // ChromeMediaSession. This class is owned by the native MediaSession and will | 
 |  21 // teardown Java ChromeMediaSession when the native MediaSession is destroyed. | 
 |  22 // Java MediaSessionObservers are also proxied via this class. | 
 |  23 class MediaSessionAndroid final : public MediaSessionObserver { | 
 |  24  public: | 
 |  25   MediaSessionAndroid(MediaSession* session); | 
 |  26   ~MediaSessionAndroid() override; | 
 |  27  | 
 |  28   static bool Register(JNIEnv* env); | 
 |  29  | 
 |  30   base::android::ScopedJavaLocalRef<jobject> GetJavaSession(); | 
 |  31  | 
 |  32   // MediaSessionObserver implementation. | 
 |  33   void MediaSessionDestroyed() override; | 
 |  34   void MediaSessionStateChanged(bool is_controllable, | 
 |  35                                 bool is_suspended) override; | 
 |  36   void MediaSessionMetadataChanged( | 
 |  37       const base::Optional<MediaMetadata>& metadata) override; | 
 |  38  | 
 |  39   // MediaSession method wrappers. | 
 |  40   void Resume(JNIEnv* env, const base::android::JavaParamRef<jobject>& j_obj); | 
 |  41   void Suspend(JNIEnv* env, const base::android::JavaParamRef<jobject>& j_obj); | 
 |  42   void Stop(JNIEnv* env, const base::android::JavaParamRef<jobject>& j_obj); | 
 |  43  | 
 |  44  private: | 
 |  45   // The linked Java object | 
 |  46   base::android::ScopedJavaGlobalRef<jobject> j_media_session_; | 
 |  47  | 
 |  48   DISALLOW_COPY_AND_ASSIGN(MediaSessionAndroid); | 
 |  49 }; | 
 |  50  | 
 |  51 }  // namespace content | 
 |  52  | 
 |  53 #endif  // CONTENT_BROWSER_MEDIA_SESSION_MEDIA_SESSION_ANDROID_H_ | 
| OLD | NEW |