Loading core/java/android/widget/MediaControlView2.java +8 −88 Original line number Diff line number Diff line Loading @@ -22,13 +22,13 @@ import android.annotation.Nullable; import android.content.Context; import android.media.session.MediaController; import android.media.update.ApiLoader; import android.media.update.FrameLayoutHelper; import android.media.update.MediaControlView2Provider; import android.media.update.ViewProvider; import android.util.AttributeSet; import android.view.MotionEvent; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; /** * A View that contains the controls for MediaPlayer2. * It provides a wide range of UI including buttons such as "Play/Pause", "Rewind", "Fast Forward", Loading Loading @@ -61,7 +61,7 @@ import java.lang.annotation.RetentionPolicy; * TODO PUBLIC API * @hide */ public class MediaControlView2 extends FrameLayout { public class MediaControlView2 extends FrameLayoutHelper<MediaControlView2Provider> { /** @hide */ @IntDef({ BUTTON_PLAY_PAUSE, Loading Loading @@ -140,8 +140,6 @@ public class MediaControlView2 extends FrameLayout { */ public static final String COMMAND_SET_FULLSCREEN = "setFullscreen"; private final MediaControlView2Provider mProvider; public MediaControlView2(@NonNull Context context) { this(context, null); } Loading @@ -157,17 +155,10 @@ public class MediaControlView2 extends FrameLayout { 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()); } /** * @hide */ public MediaControlView2Provider getProvider() { return mProvider; super((instance, superProvider) -> ApiLoader.getProvider(context).createMediaControlView2( (MediaControlView2) instance, superProvider), context, attrs, defStyleAttr, defStyleRes); } /** Loading Loading @@ -232,80 +223,9 @@ public class MediaControlView2 extends FrameLayout { } @Override // TODO Move this method to ViewProvider public void onVisibilityAggregated(boolean isVisible) { mProvider.onVisibilityAggregated_impl(isVisible); } @Override protected void onAttachedToWindow() { mProvider.onAttachedToWindow_impl(); } @Override protected void onDetachedFromWindow() { mProvider.onDetachedFromWindow_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 void onFinishInflate() { mProvider.onFinishInflate_impl(); } @Override public void setEnabled(boolean enabled) { mProvider.setEnabled_impl(enabled); } private class SuperProvider implements ViewProvider { @Override public void onAttachedToWindow_impl() { MediaControlView2.super.onAttachedToWindow(); } @Override public void onDetachedFromWindow_impl() { MediaControlView2.super.onDetachedFromWindow(); } @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 void onFinishInflate_impl() { MediaControlView2.super.onFinishInflate(); } @Override public void setEnabled_impl(boolean enabled) { MediaControlView2.super.setEnabled(enabled); } } } core/java/android/widget/VideoView2.java +6 −88 Original line number Diff line number Diff line Loading @@ -27,12 +27,11 @@ import android.media.session.MediaController; import android.media.session.MediaSession; import android.media.session.PlaybackState; import android.media.update.ApiLoader; import android.media.update.FrameLayoutHelper; import android.media.update.VideoView2Provider; import android.media.update.ViewProvider; import android.net.Uri; import android.os.Bundle; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; import java.lang.annotation.Retention; Loading Loading @@ -102,7 +101,7 @@ import java.util.concurrent.Executor; * * @hide */ public class VideoView2 extends FrameLayout { public class VideoView2 extends FrameLayoutHelper<VideoView2Provider> { /** @hide */ @IntDef({ VIEW_TYPE_TEXTUREVIEW, Loading @@ -125,8 +124,6 @@ public class VideoView2 extends FrameLayout { */ public static final int VIEW_TYPE_TEXTUREVIEW = 2; private final VideoView2Provider mProvider; public VideoView2(@NonNull Context context) { this(context, null); } Loading @@ -142,17 +139,10 @@ public class VideoView2 extends FrameLayout { public VideoView2( @NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); mProvider = ApiLoader.getProvider(context).createVideoView2(this, new SuperProvider(), attrs, defStyleAttr, defStyleRes); } /** * @hide */ public VideoView2Provider getProvider() { return mProvider; super((instance, superProvider) -> ApiLoader.getProvider(context).createVideoView2( (VideoView2) instance, superProvider, attrs, defStyleAttr, defStyleRes), context, attrs, defStyleAttr, defStyleRes); } /** Loading Loading @@ -497,76 +487,4 @@ public class VideoView2 extends FrameLayout { */ void onCustomAction(String action, Bundle extras); } @Override protected void onAttachedToWindow() { mProvider.onAttachedToWindow_impl(); } @Override protected void onDetachedFromWindow() { mProvider.onDetachedFromWindow_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 void onFinishInflate() { mProvider.onFinishInflate_impl(); } @Override public void setEnabled(boolean enabled) { mProvider.setEnabled_impl(enabled); } private class SuperProvider implements ViewProvider { @Override public void onAttachedToWindow_impl() { VideoView2.super.onAttachedToWindow(); } @Override public void onDetachedFromWindow_impl() { VideoView2.super.onDetachedFromWindow(); } @Override public CharSequence getAccessibilityClassName_impl() { return VideoView2.super.getAccessibilityClassName(); } @Override public boolean onTouchEvent_impl(MotionEvent ev) { return VideoView2.super.onTouchEvent(ev); } @Override public boolean onTrackballEvent_impl(MotionEvent ev) { return VideoView2.super.onTrackballEvent(ev); } @Override public void onFinishInflate_impl() { VideoView2.super.onFinishInflate(); } @Override public void setEnabled_impl(boolean enabled) { VideoView2.super.setEnabled(enabled); } } } media/java/android/media/update/FrameLayoutHelper.java 0 → 100644 +128 −0 Original line number Diff line number Diff line /* * Copyright 2018 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.media.update; import android.content.Context; import android.graphics.Canvas; import android.util.AttributeSet; import android.view.MotionEvent; import android.widget.FrameLayout; /** * Helper class for connecting the public API to an updatable implementation. * * @see ViewProvider * * @hide */ public abstract class FrameLayoutHelper<T extends ViewProvider> extends FrameLayout { /** @hide */ final public T mProvider; /** @hide */ public FrameLayoutHelper(ProviderCreator<T> creator, Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); mProvider = creator.createProvider(this, new SuperProvider()); } /** @hide */ // TODO @SystemApi public T getProvider() { return mProvider; } @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 void onFinishInflate() { mProvider.onFinishInflate_impl(); } @Override public void setEnabled(boolean enabled) { mProvider.setEnabled_impl(enabled); } @Override protected void onAttachedToWindow() { mProvider.onAttachedToWindow_impl(); } @Override protected void onDetachedFromWindow() { mProvider.onDetachedFromWindow_impl(); } /** @hide */ public class SuperProvider implements ViewProvider { @Override public CharSequence getAccessibilityClassName_impl() { return FrameLayoutHelper.super.getAccessibilityClassName(); } @Override public boolean onTouchEvent_impl(MotionEvent ev) { return FrameLayoutHelper.super.onTouchEvent(ev); } @Override public boolean onTrackballEvent_impl(MotionEvent ev) { return FrameLayoutHelper.super.onTrackballEvent(ev); } @Override public void onFinishInflate_impl() { FrameLayoutHelper.super.onFinishInflate(); } @Override public void setEnabled_impl(boolean enabled) { FrameLayoutHelper.super.setEnabled(enabled); } @Override public void onAttachedToWindow_impl() { FrameLayoutHelper.super.onAttachedToWindow(); } @Override public void onDetachedFromWindow_impl() { FrameLayoutHelper.super.onDetachedFromWindow(); } } /** @hide */ @FunctionalInterface public interface ProviderCreator<U extends ViewProvider> { U createProvider(FrameLayoutHelper<U> instance, ViewProvider superProvider); } } Loading
core/java/android/widget/MediaControlView2.java +8 −88 Original line number Diff line number Diff line Loading @@ -22,13 +22,13 @@ import android.annotation.Nullable; import android.content.Context; import android.media.session.MediaController; import android.media.update.ApiLoader; import android.media.update.FrameLayoutHelper; import android.media.update.MediaControlView2Provider; import android.media.update.ViewProvider; import android.util.AttributeSet; import android.view.MotionEvent; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; /** * A View that contains the controls for MediaPlayer2. * It provides a wide range of UI including buttons such as "Play/Pause", "Rewind", "Fast Forward", Loading Loading @@ -61,7 +61,7 @@ import java.lang.annotation.RetentionPolicy; * TODO PUBLIC API * @hide */ public class MediaControlView2 extends FrameLayout { public class MediaControlView2 extends FrameLayoutHelper<MediaControlView2Provider> { /** @hide */ @IntDef({ BUTTON_PLAY_PAUSE, Loading Loading @@ -140,8 +140,6 @@ public class MediaControlView2 extends FrameLayout { */ public static final String COMMAND_SET_FULLSCREEN = "setFullscreen"; private final MediaControlView2Provider mProvider; public MediaControlView2(@NonNull Context context) { this(context, null); } Loading @@ -157,17 +155,10 @@ public class MediaControlView2 extends FrameLayout { 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()); } /** * @hide */ public MediaControlView2Provider getProvider() { return mProvider; super((instance, superProvider) -> ApiLoader.getProvider(context).createMediaControlView2( (MediaControlView2) instance, superProvider), context, attrs, defStyleAttr, defStyleRes); } /** Loading Loading @@ -232,80 +223,9 @@ public class MediaControlView2 extends FrameLayout { } @Override // TODO Move this method to ViewProvider public void onVisibilityAggregated(boolean isVisible) { mProvider.onVisibilityAggregated_impl(isVisible); } @Override protected void onAttachedToWindow() { mProvider.onAttachedToWindow_impl(); } @Override protected void onDetachedFromWindow() { mProvider.onDetachedFromWindow_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 void onFinishInflate() { mProvider.onFinishInflate_impl(); } @Override public void setEnabled(boolean enabled) { mProvider.setEnabled_impl(enabled); } private class SuperProvider implements ViewProvider { @Override public void onAttachedToWindow_impl() { MediaControlView2.super.onAttachedToWindow(); } @Override public void onDetachedFromWindow_impl() { MediaControlView2.super.onDetachedFromWindow(); } @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 void onFinishInflate_impl() { MediaControlView2.super.onFinishInflate(); } @Override public void setEnabled_impl(boolean enabled) { MediaControlView2.super.setEnabled(enabled); } } }
core/java/android/widget/VideoView2.java +6 −88 Original line number Diff line number Diff line Loading @@ -27,12 +27,11 @@ import android.media.session.MediaController; import android.media.session.MediaSession; import android.media.session.PlaybackState; import android.media.update.ApiLoader; import android.media.update.FrameLayoutHelper; import android.media.update.VideoView2Provider; import android.media.update.ViewProvider; import android.net.Uri; import android.os.Bundle; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; import java.lang.annotation.Retention; Loading Loading @@ -102,7 +101,7 @@ import java.util.concurrent.Executor; * * @hide */ public class VideoView2 extends FrameLayout { public class VideoView2 extends FrameLayoutHelper<VideoView2Provider> { /** @hide */ @IntDef({ VIEW_TYPE_TEXTUREVIEW, Loading @@ -125,8 +124,6 @@ public class VideoView2 extends FrameLayout { */ public static final int VIEW_TYPE_TEXTUREVIEW = 2; private final VideoView2Provider mProvider; public VideoView2(@NonNull Context context) { this(context, null); } Loading @@ -142,17 +139,10 @@ public class VideoView2 extends FrameLayout { public VideoView2( @NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); mProvider = ApiLoader.getProvider(context).createVideoView2(this, new SuperProvider(), attrs, defStyleAttr, defStyleRes); } /** * @hide */ public VideoView2Provider getProvider() { return mProvider; super((instance, superProvider) -> ApiLoader.getProvider(context).createVideoView2( (VideoView2) instance, superProvider, attrs, defStyleAttr, defStyleRes), context, attrs, defStyleAttr, defStyleRes); } /** Loading Loading @@ -497,76 +487,4 @@ public class VideoView2 extends FrameLayout { */ void onCustomAction(String action, Bundle extras); } @Override protected void onAttachedToWindow() { mProvider.onAttachedToWindow_impl(); } @Override protected void onDetachedFromWindow() { mProvider.onDetachedFromWindow_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 void onFinishInflate() { mProvider.onFinishInflate_impl(); } @Override public void setEnabled(boolean enabled) { mProvider.setEnabled_impl(enabled); } private class SuperProvider implements ViewProvider { @Override public void onAttachedToWindow_impl() { VideoView2.super.onAttachedToWindow(); } @Override public void onDetachedFromWindow_impl() { VideoView2.super.onDetachedFromWindow(); } @Override public CharSequence getAccessibilityClassName_impl() { return VideoView2.super.getAccessibilityClassName(); } @Override public boolean onTouchEvent_impl(MotionEvent ev) { return VideoView2.super.onTouchEvent(ev); } @Override public boolean onTrackballEvent_impl(MotionEvent ev) { return VideoView2.super.onTrackballEvent(ev); } @Override public void onFinishInflate_impl() { VideoView2.super.onFinishInflate(); } @Override public void setEnabled_impl(boolean enabled) { VideoView2.super.setEnabled(enabled); } } }
media/java/android/media/update/FrameLayoutHelper.java 0 → 100644 +128 −0 Original line number Diff line number Diff line /* * Copyright 2018 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.media.update; import android.content.Context; import android.graphics.Canvas; import android.util.AttributeSet; import android.view.MotionEvent; import android.widget.FrameLayout; /** * Helper class for connecting the public API to an updatable implementation. * * @see ViewProvider * * @hide */ public abstract class FrameLayoutHelper<T extends ViewProvider> extends FrameLayout { /** @hide */ final public T mProvider; /** @hide */ public FrameLayoutHelper(ProviderCreator<T> creator, Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); mProvider = creator.createProvider(this, new SuperProvider()); } /** @hide */ // TODO @SystemApi public T getProvider() { return mProvider; } @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 void onFinishInflate() { mProvider.onFinishInflate_impl(); } @Override public void setEnabled(boolean enabled) { mProvider.setEnabled_impl(enabled); } @Override protected void onAttachedToWindow() { mProvider.onAttachedToWindow_impl(); } @Override protected void onDetachedFromWindow() { mProvider.onDetachedFromWindow_impl(); } /** @hide */ public class SuperProvider implements ViewProvider { @Override public CharSequence getAccessibilityClassName_impl() { return FrameLayoutHelper.super.getAccessibilityClassName(); } @Override public boolean onTouchEvent_impl(MotionEvent ev) { return FrameLayoutHelper.super.onTouchEvent(ev); } @Override public boolean onTrackballEvent_impl(MotionEvent ev) { return FrameLayoutHelper.super.onTrackballEvent(ev); } @Override public void onFinishInflate_impl() { FrameLayoutHelper.super.onFinishInflate(); } @Override public void setEnabled_impl(boolean enabled) { FrameLayoutHelper.super.setEnabled(enabled); } @Override public void onAttachedToWindow_impl() { FrameLayoutHelper.super.onAttachedToWindow(); } @Override public void onDetachedFromWindow_impl() { FrameLayoutHelper.super.onDetachedFromWindow(); } } /** @hide */ @FunctionalInterface public interface ProviderCreator<U extends ViewProvider> { U createProvider(FrameLayoutHelper<U> instance, ViewProvider superProvider); } }