Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a7a0502e authored by Hyundo Moon's avatar Hyundo Moon
Browse files

MediaSession2: Create VolumeProvider2

Bug: 72721358
Test: Builds successfully
Change-Id: I4c8c6c1fdf97fb9ca9d7d523967107b480584bb0
parent 231877fb
Loading
Loading
Loading
Loading
+77 −0
Original line number Original line 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 com.android.media;

import android.content.Context;
import android.media.VolumeProvider2;
import android.media.update.VolumeProvider2Provider;

public class VolumeProvider2Impl implements VolumeProvider2Provider {

    private final Context mContext;
    private final VolumeProvider2 mInstance;
    private final int mControlType;
    private final int mMaxVolume;

    private int mCurrentVolume;
    private Callback mCallback;

    public VolumeProvider2Impl(Context context, VolumeProvider2 instance,
            @VolumeProvider2.ControlType int controlType, int maxVolume, int currentVolume) {
        mContext = context;
        mInstance = instance;
        mControlType = controlType;
        mMaxVolume = maxVolume;
        mCurrentVolume = currentVolume;
    }

    @Override
    public int getControlType_impl() {
        return mControlType;
    }

    @Override
    public int getMaxVolume_impl() {
        return mMaxVolume;
    }

    @Override
    public int getCurrentVolume_impl() {
        return mCurrentVolume;
    }

    @Override
    public void setCurrentVolume_impl(int currentVolume) {
        mCurrentVolume = currentVolume;
        if (mCallback != null) {
            mCallback.onVolumeChanged(mInstance);
        }
    }

    /**
     * Sets a callback to receive volume changes.
     */
    public void setCallback(Callback callback) {
        mCallback = callback;
    }

    /**
     * Listens for changes to the volume.
     */
    public static abstract class Callback {
        public abstract void onVolumeChanged(VolumeProvider2 volumeProvider);
    }
}
+10 −6
Original line number Original line Diff line number Diff line
@@ -16,7 +16,6 @@


package com.android.media.update;
package com.android.media.update;


import android.app.PendingIntent;
import android.content.Context;
import android.content.Context;
import android.content.res.Resources;
import android.content.res.Resources;
import android.content.res.Resources.Theme;
import android.content.res.Resources.Theme;
@@ -42,12 +41,11 @@ import android.media.MediaSessionService2;
import android.media.Rating2;
import android.media.Rating2;
import android.media.SessionPlayer2;
import android.media.SessionPlayer2;
import android.media.SessionToken2;
import android.media.SessionToken2;
import android.media.VolumeProvider;
import android.media.VolumeProvider2;
import android.media.update.MediaBrowser2Provider;
import android.media.update.MediaBrowser2Provider;
import android.media.update.MediaControlView2Provider;
import android.media.update.MediaControlView2Provider;
import android.media.update.MediaController2Provider;
import android.media.update.MediaController2Provider;
import android.media.update.MediaItem2Provider;
import android.media.update.MediaItem2Provider;
import android.media.update.MediaLibraryService2Provider.MediaLibrarySessionProvider;
import android.media.update.MediaMetadata2Provider;
import android.media.update.MediaMetadata2Provider;
import android.media.update.MediaSession2Provider;
import android.media.update.MediaSession2Provider;
import android.media.update.MediaSession2Provider.BuilderBaseProvider;
import android.media.update.MediaSession2Provider.BuilderBaseProvider;
@@ -55,9 +53,10 @@ import android.media.update.MediaSession2Provider.PlaylistParamsProvider;
import android.media.update.MediaSessionService2Provider;
import android.media.update.MediaSessionService2Provider;
import android.media.update.SessionPlayer2Provider;
import android.media.update.SessionPlayer2Provider;
import android.media.update.SessionToken2Provider;
import android.media.update.SessionToken2Provider;
import android.media.update.VideoView2Provider;
import android.media.update.StaticProvider;
import android.media.update.StaticProvider;
import android.media.update.VideoView2Provider;
import android.media.update.ViewProvider;
import android.media.update.ViewProvider;
import android.media.update.VolumeProvider2Provider;
import android.os.Bundle;
import android.os.Bundle;
import android.os.IInterface;
import android.os.IInterface;
import android.support.annotation.Nullable;
import android.support.annotation.Nullable;
@@ -65,19 +64,18 @@ import android.util.AttributeSet;
import android.widget.MediaControlView2;
import android.widget.MediaControlView2;
import android.widget.VideoView2;
import android.widget.VideoView2;


import com.android.media.IMediaSession2;
import com.android.media.IMediaSession2Callback;
import com.android.media.IMediaSession2Callback;
import com.android.media.MediaBrowser2Impl;
import com.android.media.MediaBrowser2Impl;
import com.android.media.MediaController2Impl;
import com.android.media.MediaController2Impl;
import com.android.media.MediaItem2Impl;
import com.android.media.MediaItem2Impl;
import com.android.media.MediaLibraryService2Impl;
import com.android.media.MediaLibraryService2Impl;
import com.android.media.MediaLibraryService2Impl.MediaLibrarySessionImpl;
import com.android.media.MediaMetadata2Impl;
import com.android.media.MediaMetadata2Impl;
import com.android.media.MediaSession2Impl;
import com.android.media.MediaSession2Impl;
import com.android.media.MediaSession2Impl.PlaylistParamsImpl;
import com.android.media.MediaSession2Impl.PlaylistParamsImpl;
import com.android.media.MediaSessionService2Impl;
import com.android.media.MediaSessionService2Impl;
import com.android.media.Rating2Impl;
import com.android.media.Rating2Impl;
import com.android.media.SessionToken2Impl;
import com.android.media.SessionToken2Impl;
import com.android.media.VolumeProvider2Impl;
import com.android.widget.MediaControlView2Impl;
import com.android.widget.MediaControlView2Impl;
import com.android.widget.VideoView2Impl;
import com.android.widget.VideoView2Impl;


@@ -217,6 +215,12 @@ public class ApiFactory implements StaticProvider {
        return MediaItem2Impl.fromBundle(context, bundle);
        return MediaItem2Impl.fromBundle(context, bundle);
    }
    }


    @Override
    public VolumeProvider2Provider createVolumeProvider2(Context context, VolumeProvider2 instance,
            int controlType, int maxVolume, int currentVolume) {
        return new VolumeProvider2Impl(context, instance, controlType, maxVolume, currentVolume);
    }

    @Override
    @Override
    public MediaMetadata2 fromBundle_MediaMetadata2(Context context, Bundle bundle) {
    public MediaMetadata2 fromBundle_MediaMetadata2(Context context, Bundle bundle) {
        return MediaMetadata2Impl.fromBundle(context, bundle);
        return MediaMetadata2Impl.fromBundle(context, bundle);