diff options
author | Nicolas Roard <nicolasroard@google.com> | 2011-03-14 13:23:18 -0700 |
---|---|---|
committer | Nicolas Roard <nicolasroard@google.com> | 2011-03-14 19:07:36 -0700 |
commit | 833c9ceaa300f52cf2d1b12a9b3482ad417a3c21 (patch) | |
tree | 0fa83f5b4a725f225ef285f1b5e28e404feb8050 /WebKit/android | |
parent | a0fb3c7e0c38540c392a5248b0f1100c158612f9 (diff) | |
download | external_webkit-833c9ceaa300f52cf2d1b12a9b3482ad417a3c21.zip external_webkit-833c9ceaa300f52cf2d1b12a9b3482ad417a3c21.tar.gz external_webkit-833c9ceaa300f52cf2d1b12a9b3482ad417a3c21.tar.bz2 |
Improving HTML5 video controls
- correct support for the fullscreen button
- change the controls to be 48px high
- auto-hide the controls, touching the video makes them appear again
bug:2126902
Change-Id: Idd2b720034de3d5d432c9ea62d9045934c46f6c1
Diffstat (limited to 'WebKit/android')
-rw-r--r-- | WebKit/android/RenderSkinMediaButton.cpp | 2 | ||||
-rw-r--r-- | WebKit/android/RenderSkinMediaButton.h | 2 | ||||
-rw-r--r-- | WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp | 17 |
3 files changed, 14 insertions, 7 deletions
diff --git a/WebKit/android/RenderSkinMediaButton.cpp b/WebKit/android/RenderSkinMediaButton.cpp index f9da7cf..c3ab80f 100644 --- a/WebKit/android/RenderSkinMediaButton.cpp +++ b/WebKit/android/RenderSkinMediaButton.cpp @@ -51,6 +51,7 @@ static const PatchData gFiles[] = { "ic_media_pause.png", 0, 0 }, // MUTE { "ic_media_rew.png", 0, 0 }, // REWIND { "ic_media_ff.png", 0, 0 }, // FORWARD + { "ic_media_fullscreen.png", 0, 0 }, // FULLSCREEN { "btn_media_player_disabled.9.png", 0, 0 }, // BACKGROUND_SLIDER { "scrubber_track_holo_dark.9.png", 0, 0 }, // SLIDER_TRACK { "scrubber_control_holo.png", 0, 0 } // SLIDER_THUMB @@ -113,6 +114,7 @@ void RenderSkinMediaButton::Draw(SkCanvas* canvas, const IntRect& r, int buttonT case MUTE: case REWIND: case FORWARD: + case FULLSCREEN: { imageIndex = buttonType + 1; paint.setColor(backgroundColor); diff --git a/WebKit/android/RenderSkinMediaButton.h b/WebKit/android/RenderSkinMediaButton.h index 124db32..bde31eb 100644 --- a/WebKit/android/RenderSkinMediaButton.h +++ b/WebKit/android/RenderSkinMediaButton.h @@ -48,7 +48,7 @@ public: /** * Button types */ - enum { PAUSE, PLAY, MUTE, REWIND, FORWARD, BACKGROUND_SLIDER, SLIDER_TRACK, SLIDER_THUMB }; + enum { PAUSE, PLAY, MUTE, REWIND, FORWARD, FULLSCREEN, BACKGROUND_SLIDER, SLIDER_TRACK, SLIDER_THUMB }; /** * Slider dimensions */ diff --git a/WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp b/WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp index 8f84c2f..4cc9cf4 100644 --- a/WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp +++ b/WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp @@ -103,6 +103,7 @@ void MediaPlayerPrivate::pause() return; m_paused = true; + m_player->playbackStateChanged(); env->CallVoidMethod(m_glue->m_javaProxy, m_glue->m_pause); checkException(env); } @@ -162,6 +163,7 @@ void MediaPlayerPrivate::onEnded() m_currentTime = duration(); m_player->timeChanged(); m_paused = true; + m_player->playbackStateChanged(); m_hasVideo = false; m_networkState = MediaPlayer::Idle; } @@ -169,6 +171,7 @@ void MediaPlayerPrivate::onEnded() void MediaPlayerPrivate::onPaused() { m_paused = true; + m_player->playbackStateChanged(); m_hasVideo = false; m_networkState = MediaPlayer::Idle; m_player->playbackStateChanged(); @@ -207,6 +210,7 @@ public: return; m_paused = false; + m_player->playbackStateChanged(); if (m_currentTime == duration()) m_currentTime = 0; @@ -284,9 +288,9 @@ public: m_player->sizeChanged(); } - bool hasAudio() { return false; } // do not display the audio UI - bool hasVideo() { return m_hasVideo; } - bool suppportsFullscreen() { return true; } + virtual bool hasAudio() const { return false; } // do not display the audio UI + virtual bool hasVideo() const { return m_hasVideo; } + virtual bool supportsFullscreen() const { return true; } MediaPlayerVideoPrivate(MediaPlayer* player) : MediaPlayerPrivate(player) { @@ -394,13 +398,14 @@ public: return; m_paused = false; + m_player->playbackStateChanged(); env->CallVoidMethod(m_glue->m_javaProxy, m_glue->m_play); checkException(env); } - bool hasAudio() { return true; } - bool hasVideo() { return false; } - bool suppportsFullscreen() { return false; } + virtual bool hasAudio() const { return true; } + virtual bool hasVideo() const { return false; } + virtual bool supportsFullscreen() const { return false; } float maxTimeSeekable() const { |