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