diff options
| author | Insun Kang <insun@google.com> | 2018-01-17 23:06:18 +0900 |
|---|---|---|
| committer | Insun Kang <insun@google.com> | 2018-01-19 14:41:39 +0900 |
| commit | de16c4d3579238b49cd3a253e9905196120f9bf0 (patch) | |
| tree | 8d761a77b9b401285c4f1136cef6a79944b8f0ee /core/java/android/widget/MediaControlView2.java | |
| parent | 7d0e1f8065cc618ed8931f070777cda366e65fd0 (diff) | |
Initial commit for VideoView2Impl
Test: build
Change-Id: I12b93da01b9c37115cba29b8b50b36cf3d74ddb6
Diffstat (limited to 'core/java/android/widget/MediaControlView2.java')
| -rw-r--r-- | core/java/android/widget/MediaControlView2.java | 231 |
1 files changed, 231 insertions, 0 deletions
diff --git a/core/java/android/widget/MediaControlView2.java b/core/java/android/widget/MediaControlView2.java new file mode 100644 index 000000000000..6e85ece291b2 --- /dev/null +++ b/core/java/android/widget/MediaControlView2.java @@ -0,0 +1,231 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.widget; + +import android.annotation.NonNull; +import android.annotation.Nullable; +import android.content.Context; +import android.media.session.MediaController; +import android.media.update.ApiLoader; +import android.media.update.MediaControlView2Provider; +import android.media.update.ViewProvider; +import android.util.AttributeSet; +import android.view.KeyEvent; +import android.view.MotionEvent; + +/** + * TODO PUBLIC API + * @hide + */ +public class MediaControlView2 extends FrameLayout { + private final MediaControlView2Provider mProvider; + + public MediaControlView2(@NonNull Context context) { + this(context, null); + } + + public MediaControlView2(@NonNull Context context, @Nullable AttributeSet attrs) { + this(context, attrs, 0); + } + + public MediaControlView2(@NonNull Context context, @Nullable AttributeSet attrs, + int defStyleAttr) { + this(context, attrs, defStyleAttr, 0); + } + + public MediaControlView2(@NonNull Context context, @Nullable AttributeSet attrs, + int defStyleAttr, int defStyleRes) { + super(context, attrs, defStyleAttr, defStyleRes); + + mProvider = ApiLoader.getProvider(context) + .createMediaControlView2(this, new SuperProvider()); + } + + public MediaControlView2Provider getProvider() { + return mProvider; + } + + /** + * TODO: add docs + */ + public void setController(MediaController controller) { + mProvider.setController_impl(controller); + } + + /** + * TODO: add docs + */ + public void show() { + mProvider.show_impl(); + } + + /** + * TODO: add docs + */ + public void show(int timeout) { + mProvider.show_impl(timeout); + } + + /** + * TODO: add docs + */ + public boolean isShowing() { + return mProvider.isShowing_impl(); + } + + /** + * TODO: add docs + */ + public void hide() { + mProvider.hide_impl(); + } + + /** + * TODO: add docs + */ + public void showCCButton() { + mProvider.showCCButton_impl(); + } + + /** + * TODO: add docs + */ + public boolean isPlaying() { + return mProvider.isPlaying_impl(); + } + + /** + * TODO: add docs + */ + public int getCurrentPosition() { + return mProvider.getCurrentPosition_impl(); + } + + /** + * TODO: add docs + */ + public int getBufferPercentage() { + return mProvider.getBufferPercentage_impl(); + } + + /** + * TODO: add docs + */ + public boolean canPause() { + return mProvider.canPause_impl(); + } + + /** + * TODO: add docs + */ + public boolean canSeekBackward() { + return mProvider.canSeekBackward_impl(); + } + + /** + * TODO: add docs + */ + public boolean canSeekForward() { + return mProvider.canSeekForward_impl(); + } + + /** + * TODO: add docs + */ + public void showSubtitle() { + mProvider.showSubtitle_impl(); + } + + /** + * TODO: add docs + */ + public void hideSubtitle() { + mProvider.hideSubtitle_impl(); + } + + @Override + public CharSequence getAccessibilityClassName() { + return mProvider.getAccessibilityClassName_impl(); + } + + @Override + public boolean onTouchEvent(MotionEvent ev) { + return mProvider.onTouchEvent_impl(ev); + } + + @Override + public boolean onTrackballEvent(MotionEvent ev) { + return mProvider.onTrackballEvent_impl(ev); + } + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + return mProvider.onKeyDown_impl(keyCode, event); + } + + @Override + public void onFinishInflate() { + mProvider.onFinishInflate_impl(); + } + + @Override + public boolean dispatchKeyEvent(KeyEvent event) { + return mProvider.dispatchKeyEvent_impl(event); + } + + @Override + public void setEnabled(boolean enabled) { + mProvider.setEnabled_impl(enabled); + } + + private class SuperProvider implements ViewProvider { + @Override + public CharSequence getAccessibilityClassName_impl() { + return MediaControlView2.super.getAccessibilityClassName(); + } + + @Override + public boolean onTouchEvent_impl(MotionEvent ev) { + return MediaControlView2.super.onTouchEvent(ev); + } + + @Override + public boolean onTrackballEvent_impl(MotionEvent ev) { + return MediaControlView2.super.onTrackballEvent(ev); + } + + @Override + public boolean onKeyDown_impl(int keyCode, KeyEvent event) { + return MediaControlView2.super.onKeyDown(keyCode, event); + } + + @Override + public void onFinishInflate_impl() { + MediaControlView2.super.onFinishInflate(); + } + + @Override + public boolean dispatchKeyEvent_impl(KeyEvent event) { + return MediaControlView2.super.dispatchKeyEvent(event); + } + + @Override + public void setEnabled_impl(boolean enabled) { + MediaControlView2.super.setEnabled(enabled); + } + } +} |
