Loading core/java/android/widget/MediaControlView2.java +6 −11 Original line number Diff line number Diff line Loading @@ -22,8 +22,8 @@ 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.ViewGroupHelper; import android.util.AttributeSet; import java.lang.annotation.Retention; Loading Loading @@ -61,7 +61,7 @@ import java.lang.annotation.RetentionPolicy; * TODO PUBLIC API * @hide */ public class MediaControlView2 extends FrameLayoutHelper<MediaControlView2Provider> { public class MediaControlView2 extends ViewGroupHelper<MediaControlView2Provider> { /** @hide */ @IntDef({ BUTTON_PLAY_PAUSE, Loading Loading @@ -155,10 +155,12 @@ public class MediaControlView2 extends FrameLayoutHelper<MediaControlView2Provid public MediaControlView2(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { super((instance, superProvider) -> super((instance, superProvider, privateProvider) -> ApiLoader.getProvider(context).createMediaControlView2( (MediaControlView2) instance, superProvider), (MediaControlView2) instance, superProvider, privateProvider, attrs, defStyleAttr, defStyleRes), context, attrs, defStyleAttr, defStyleRes); mProvider.initialize(attrs, defStyleAttr, defStyleRes); } /** Loading Loading @@ -221,11 +223,4 @@ public class MediaControlView2 extends FrameLayoutHelper<MediaControlView2Provid public long getTimeout() { return mProvider.getTimeout_impl(); } @Override // TODO Move this method to ViewProvider public void onVisibilityAggregated(boolean isVisible) { mProvider.onVisibilityAggregated_impl(isVisible); } } core/java/android/widget/VideoView2.java +6 −4 Original line number Diff line number Diff line Loading @@ -27,8 +27,8 @@ 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.ViewGroupHelper; import android.net.Uri; import android.os.Bundle; import android.util.AttributeSet; Loading Loading @@ -101,7 +101,7 @@ import java.util.concurrent.Executor; * * @hide */ public class VideoView2 extends FrameLayoutHelper<VideoView2Provider> { public class VideoView2 extends ViewGroupHelper<VideoView2Provider> { /** @hide */ @IntDef({ VIEW_TYPE_TEXTUREVIEW, Loading Loading @@ -139,10 +139,12 @@ public class VideoView2 extends FrameLayoutHelper<VideoView2Provider> { public VideoView2( @NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { super((instance, superProvider) -> super((instance, superProvider, privateProvider) -> ApiLoader.getProvider(context).createVideoView2( (VideoView2) instance, superProvider, attrs, defStyleAttr, defStyleRes), (VideoView2) instance, superProvider, privateProvider, attrs, defStyleAttr, defStyleRes), context, attrs, defStyleAttr, defStyleRes); mProvider.initialize(attrs, defStyleAttr, defStyleRes); } /** Loading media/java/android/media/update/FrameLayoutHelper.javadeleted 100644 → 0 +0 −128 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); } } media/java/android/media/update/MediaControlView2Provider.java +4 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.media.update; import android.annotation.SystemApi; import android.media.session.MediaController; import android.util.AttributeSet; import android.view.View; /** Loading @@ -34,12 +35,13 @@ import android.view.View; * @hide */ // TODO @SystemApi public interface MediaControlView2Provider extends ViewProvider { public interface MediaControlView2Provider extends ViewGroupProvider { void initialize(AttributeSet attrs, int defStyleAttr, int defStyleRes); void setController_impl(MediaController controller); boolean isShowing_impl(); void setButtonVisibility_impl(int button, int visibility); void requestPlayButtonFocus_impl(); void onVisibilityAggregated_impl(boolean isVisible); void setTimeout_impl(long timeout); long getTimeout_impl(); } media/java/android/media/update/StaticProvider.java +5 −4 Original line number Diff line number Diff line Loading @@ -67,10 +67,11 @@ import java.util.concurrent.Executor; * @hide */ public interface StaticProvider { MediaControlView2Provider createMediaControlView2( MediaControlView2 instance, ViewProvider superProvider); VideoView2Provider createVideoView2( VideoView2 instance, ViewProvider superProvider, MediaControlView2Provider createMediaControlView2(MediaControlView2 instance, ViewGroupProvider superProvider, ViewGroupProvider privateProvider, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes); VideoView2Provider createVideoView2(VideoView2 instance, ViewGroupProvider superProvider, ViewGroupProvider privateProvider, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes); CommandProvider createMediaSession2Command(MediaSession2.Command instance, Loading Loading
core/java/android/widget/MediaControlView2.java +6 −11 Original line number Diff line number Diff line Loading @@ -22,8 +22,8 @@ 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.ViewGroupHelper; import android.util.AttributeSet; import java.lang.annotation.Retention; Loading Loading @@ -61,7 +61,7 @@ import java.lang.annotation.RetentionPolicy; * TODO PUBLIC API * @hide */ public class MediaControlView2 extends FrameLayoutHelper<MediaControlView2Provider> { public class MediaControlView2 extends ViewGroupHelper<MediaControlView2Provider> { /** @hide */ @IntDef({ BUTTON_PLAY_PAUSE, Loading Loading @@ -155,10 +155,12 @@ public class MediaControlView2 extends FrameLayoutHelper<MediaControlView2Provid public MediaControlView2(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { super((instance, superProvider) -> super((instance, superProvider, privateProvider) -> ApiLoader.getProvider(context).createMediaControlView2( (MediaControlView2) instance, superProvider), (MediaControlView2) instance, superProvider, privateProvider, attrs, defStyleAttr, defStyleRes), context, attrs, defStyleAttr, defStyleRes); mProvider.initialize(attrs, defStyleAttr, defStyleRes); } /** Loading Loading @@ -221,11 +223,4 @@ public class MediaControlView2 extends FrameLayoutHelper<MediaControlView2Provid public long getTimeout() { return mProvider.getTimeout_impl(); } @Override // TODO Move this method to ViewProvider public void onVisibilityAggregated(boolean isVisible) { mProvider.onVisibilityAggregated_impl(isVisible); } }
core/java/android/widget/VideoView2.java +6 −4 Original line number Diff line number Diff line Loading @@ -27,8 +27,8 @@ 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.ViewGroupHelper; import android.net.Uri; import android.os.Bundle; import android.util.AttributeSet; Loading Loading @@ -101,7 +101,7 @@ import java.util.concurrent.Executor; * * @hide */ public class VideoView2 extends FrameLayoutHelper<VideoView2Provider> { public class VideoView2 extends ViewGroupHelper<VideoView2Provider> { /** @hide */ @IntDef({ VIEW_TYPE_TEXTUREVIEW, Loading Loading @@ -139,10 +139,12 @@ public class VideoView2 extends FrameLayoutHelper<VideoView2Provider> { public VideoView2( @NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { super((instance, superProvider) -> super((instance, superProvider, privateProvider) -> ApiLoader.getProvider(context).createVideoView2( (VideoView2) instance, superProvider, attrs, defStyleAttr, defStyleRes), (VideoView2) instance, superProvider, privateProvider, attrs, defStyleAttr, defStyleRes), context, attrs, defStyleAttr, defStyleRes); mProvider.initialize(attrs, defStyleAttr, defStyleRes); } /** Loading
media/java/android/media/update/FrameLayoutHelper.javadeleted 100644 → 0 +0 −128 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); } }
media/java/android/media/update/MediaControlView2Provider.java +4 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.media.update; import android.annotation.SystemApi; import android.media.session.MediaController; import android.util.AttributeSet; import android.view.View; /** Loading @@ -34,12 +35,13 @@ import android.view.View; * @hide */ // TODO @SystemApi public interface MediaControlView2Provider extends ViewProvider { public interface MediaControlView2Provider extends ViewGroupProvider { void initialize(AttributeSet attrs, int defStyleAttr, int defStyleRes); void setController_impl(MediaController controller); boolean isShowing_impl(); void setButtonVisibility_impl(int button, int visibility); void requestPlayButtonFocus_impl(); void onVisibilityAggregated_impl(boolean isVisible); void setTimeout_impl(long timeout); long getTimeout_impl(); }
media/java/android/media/update/StaticProvider.java +5 −4 Original line number Diff line number Diff line Loading @@ -67,10 +67,11 @@ import java.util.concurrent.Executor; * @hide */ public interface StaticProvider { MediaControlView2Provider createMediaControlView2( MediaControlView2 instance, ViewProvider superProvider); VideoView2Provider createVideoView2( VideoView2 instance, ViewProvider superProvider, MediaControlView2Provider createMediaControlView2(MediaControlView2 instance, ViewGroupProvider superProvider, ViewGroupProvider privateProvider, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes); VideoView2Provider createVideoView2(VideoView2 instance, ViewGroupProvider superProvider, ViewGroupProvider privateProvider, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes); CommandProvider createMediaSession2Command(MediaSession2.Command instance, Loading