VideoView2.java revision e3259049872ea9000b71e8f14d4237a75bc9d606
1e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim/*
2e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim * Copyright 2018 The Android Open Source Project
3e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim *
4e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim * Licensed under the Apache License, Version 2.0 (the "License");
5e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim * you may not use this file except in compliance with the License.
6e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim * You may obtain a copy of the License at
7e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim *
8e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim *      http://www.apache.org/licenses/LICENSE-2.0
9e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim *
10e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim * Unless required by applicable law or agreed to in writing, software
11e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim * distributed under the License is distributed on an "AS IS" BASIS,
12e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim * See the License for the specific language governing permissions and
14e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim * limitations under the License.
15e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim */
16e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
17e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Limpackage android.widget;
18e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
19e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Limimport android.annotation.IntDef;
20e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Limimport android.annotation.NonNull;
21e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Limimport android.annotation.Nullable;
22e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Limimport android.content.Context;
23e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Limimport android.graphics.Canvas;
24e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Limimport android.media.AudioAttributes;
25e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Limimport android.media.MediaPlayer;
26e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Limimport android.media.update.ApiLoader;
27e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Limimport android.media.update.VideoView2Provider;
28e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Limimport android.media.update.ViewProvider;
29e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Limimport android.net.Uri;
30e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Limimport android.util.AttributeSet;
31e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Limimport android.view.KeyEvent;
32e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Limimport android.view.MotionEvent;
33e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
34e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Limimport java.lang.annotation.Retention;
35e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Limimport java.lang.annotation.RetentionPolicy;
36e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Limimport java.util.Map;
37e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
38e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim/**
39e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim * TODO PUBLIC API
40e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim * @hide
41e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim */
42e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Limpublic class VideoView2 extends FrameLayout {
43e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    @IntDef({
44e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim            VIEW_TYPE_TEXTUREVIEW,
45e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim            VIEW_TYPE_SURFACEVIEW
46e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    })
47e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    @Retention(RetentionPolicy.SOURCE)
48e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public @interface ViewType {}
49e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public static final int VIEW_TYPE_SURFACEVIEW = 1;
50e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public static final int VIEW_TYPE_TEXTUREVIEW = 2;
51e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
52e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    private final VideoView2Provider mProvider;
53e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
54e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    /**
55e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     * @hide
56e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     */
57e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public VideoView2(@NonNull Context context) {
58e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        this(context, null);
59e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
60e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
61e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    /**
62e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     * @hide
63e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     */
64e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public VideoView2(@NonNull Context context, @Nullable AttributeSet attrs) {
65e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        this(context, attrs, 0);
66e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
67e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
68e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    /**
69e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     * @hide
70e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     */
71e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public VideoView2(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
72e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        this(context, attrs, defStyleAttr, 0);
73e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
74e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
75e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    /**
76e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     * @hide
77e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     */
78e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public VideoView2(
79e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim            @NonNull Context context, @Nullable AttributeSet attrs,
80e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim            int defStyleAttr, int defStyleRes) {
81e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        super(context, attrs, defStyleAttr, defStyleRes);
82e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
83e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        mProvider = ApiLoader.getProvider(context).createVideoView2(this, new SuperProvider());
84e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
85e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
86e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    /**
87e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     * @hide
88e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     */
89e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public VideoView2Provider getProvider() {
90e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        return mProvider;
91e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
92e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
93e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    /**
94e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     * @hide
95e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     */
96e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public void start() {
97e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        mProvider.start_impl();
98e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
99e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
100e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    /**
101e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     * @hide
102e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     */
103e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public void pause() {
104e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        mProvider.pause_impl();
105e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
106e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
107e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    /**
108e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     * @hide
109e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     */
110e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public int getDuration() {
111e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        return mProvider.getDuration_impl();
112e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
113e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
114e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    /**
115e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     * @hide
116e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     */
117e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public int getCurrentPosition() {
118e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        return mProvider.getCurrentPosition_impl();
119e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
120e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
121e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    /**
122e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     * @hide
123e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     */
124e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public void seekTo(int msec) {
125e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        mProvider.seekTo_impl(msec);
126e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
127e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
128e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    /**
129e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     * @hide
130e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     */
131e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public boolean isPlaying() {
132e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        return mProvider.isPlaying_impl();
133e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
134e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
135e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    /**
136e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     * @hide
137e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     */
138e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public int getBufferPercentage() {
139e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        return mProvider.getBufferPercentage_impl();
140e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
141e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
142e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    /**
143e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     * @hide
144e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     */
145e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public int getAudioSessionId() {
146e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        return mProvider.getAudioSessionId_impl();
147e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
148e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
149e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    /**
150e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     * @hide
151e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     */
152e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public void showSubtitle() {
153e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        mProvider.showSubtitle_impl();
154e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
155e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
156e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    /**
157e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     * @hide
158e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     */
159e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public void hideSubtitle() {
160e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        mProvider.hideSubtitle_impl();
161e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
162e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
163e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    /**
164e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     * @hide
165e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     */
166e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public void setAudioFocusRequest(int focusGain) {
167e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        mProvider.setAudioFocusRequest_impl(focusGain);
168e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
169e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
170e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    /**
171e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     * @hide
172e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     */
173e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public void setAudioAttributes(@NonNull AudioAttributes attributes) {
174e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        mProvider.setAudioAttributes_impl(attributes);
175e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
176e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
177e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    /**
178e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     * @hide
179e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     */
180e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public void setVideoPath(String path) {
181e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        mProvider.setVideoPath_impl(path);
182e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
183e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
184e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    /**
185e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     * @hide
186e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     */
187e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public void setVideoURI(Uri uri) {
188e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        mProvider.setVideoURI_impl(uri);
189e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
190e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
191e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    /**
192e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     * @hide
193e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     */
194e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public void setVideoURI(Uri uri, Map<String, String> headers) {
195e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        mProvider.setVideoURI_impl(uri, headers);
196e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
197e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
198e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    /**
199e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     * @hide
200e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     */
201e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public void setMediaController2(MediaController2 controllerView) {
202e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        mProvider.setMediaController2_impl(controllerView);
203e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
204e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
205e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    /**
206e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     * @hide
207e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     */
208e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public void setViewType(@ViewType int viewType) {
209e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        mProvider.setViewType_impl(viewType);
210e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
211e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
212e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    /**
213e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     * @hide
214e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     */
215e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    @ViewType
216e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public int getViewType() {
217e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        return mProvider.getViewType_impl();
218e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
219e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
220e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    /**
221e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     * @hide
222e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     */
223e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public void stopPlayback() {
224e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        mProvider.stopPlayback_impl();
225e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
226e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
227e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    /**
228e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     * @hide
229e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     */
230e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public void setOnPreparedListener(MediaPlayer.OnPreparedListener l) {
231e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        mProvider.setOnPreparedListener_impl(l);
232e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
233e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
234e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    /**
235e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     * @hide
236e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     */
237e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public void setOnCompletionListener(MediaPlayer.OnCompletionListener l) {
238e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        mProvider.setOnCompletionListener_impl(l);
239e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
240e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
241e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    /**
242e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     * @hide
243e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     */
244e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public void setOnErrorListener(MediaPlayer.OnErrorListener l) {
245e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        mProvider.setOnErrorListener_impl(l);
246e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
247e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
248e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    /**
249e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     * @hide
250e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     */
251e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public void setOnInfoListener(MediaPlayer.OnInfoListener l) {
252e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        mProvider.setOnInfoListener_impl(l);
253e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
254e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
255e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    /**
256e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     * @hide
257e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     */
258e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public void setOnViewTypeChangedListener(OnViewTypeChangedListener l) {
259e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        mProvider.setOnViewTypeChangedListener_impl(l);
260e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
261e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
262e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    /**
263e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     * @hide
264e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim     */
265e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public interface OnViewTypeChangedListener {
266e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        /**
267e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim         * @hide
268e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim         */
269e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        void onViewTypeChanged(@ViewType int viewType);
270e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
271e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
272e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    @Override
273e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public CharSequence getAccessibilityClassName() {
274e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        return mProvider.getAccessibilityClassName_impl();
275e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
276e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
277e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    @Override
278e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public boolean onTouchEvent(MotionEvent ev) {
279e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        return mProvider.onTouchEvent_impl(ev);
280e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
281e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
282e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    @Override
283e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public boolean onTrackballEvent(MotionEvent ev) {
284e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        return mProvider.onTrackballEvent_impl(ev);
285e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
286e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
287e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    @Override
288e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public boolean onKeyDown(int keyCode, KeyEvent event) {
289e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        return mProvider.onKeyDown_impl(keyCode, event);
290e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
291e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
292e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    @Override
293e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public void onFinishInflate() {
294e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        mProvider.onFinishInflate_impl();
295e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
296e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
297e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    @Override
298e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public boolean dispatchKeyEvent(KeyEvent event) {
299e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        return mProvider.dispatchKeyEvent_impl(event);
300e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
301e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
302e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    @Override
303e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    public void setEnabled(boolean enabled) {
304e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        mProvider.setEnabled_impl(enabled);
305e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
306e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
307e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    private class SuperProvider implements ViewProvider {
308e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        @Override
309e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        public void onAttachedToWindow_impl() {
310e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim            VideoView2.super.onAttachedToWindow();
311e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        }
312e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
313e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        @Override
314e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        public void onDetachedFromWindow_impl() {
315e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim            VideoView2.super.onDetachedFromWindow();
316e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        }
317e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
318e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        @Override
319e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        public void onLayout_impl(boolean changed, int left, int top, int right, int bottom) {
320e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim            VideoView2.super.onLayout(changed, left, top, right, bottom);
321e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        }
322e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
323e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        @Override
324e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        public void draw_impl(Canvas canvas) {
325e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim            VideoView2.super.draw(canvas);
326e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        }
327e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
328e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        @Override
329e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        public CharSequence getAccessibilityClassName_impl() {
330e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim            return VideoView2.super.getAccessibilityClassName();
331e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        }
332e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
333e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        @Override
334e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        public boolean onTouchEvent_impl(MotionEvent ev) {
335e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim            return VideoView2.super.onTouchEvent(ev);
336e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        }
337e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
338e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        @Override
339e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        public boolean onTrackballEvent_impl(MotionEvent ev) {
340e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim            return VideoView2.super.onTrackballEvent(ev);
341e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        }
342e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
343e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        @Override
344e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        public boolean onKeyDown_impl(int keyCode, KeyEvent event) {
345e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim            return VideoView2.super.onKeyDown(keyCode, event);
346e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        }
347e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
348e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        @Override
349e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        public void onFinishInflate_impl() {
350e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim            VideoView2.super.onFinishInflate();
351e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        }
352e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
353e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        @Override
354e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        public boolean dispatchKeyEvent_impl(KeyEvent event) {
355e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim            return VideoView2.super.dispatchKeyEvent(event);
356e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        }
357e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim
358e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        @Override
359e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        public void setEnabled_impl(boolean enabled) {
360e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim            VideoView2.super.setEnabled(enabled);
361e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim        }
362e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim    }
363e3259049872ea9000b71e8f14d4237a75bc9d606Sungsoo Lim}
364