124fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown/* 224fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * Copyright (C) 2014 The Android Open Source Project 324fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * 424fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * Licensed under the Apache License, Version 2.0 (the "License"); 524fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * you may not use this file except in compliance with the License. 624fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * You may obtain a copy of the License at 724fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * 824fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * http://www.apache.org/licenses/LICENSE-2.0 924fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * 1024fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * Unless required by applicable law or agreed to in writing, software 1124fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * distributed under the License is distributed on an "AS IS" BASIS, 1224fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1324fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * See the License for the specific language governing permissions and 1424fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * limitations under the License. 1524fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown */ 1624fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown 1724fa6c0dd42df057729e1a258388183f94da7f82Jeff Brownpackage android.support.v4.media; 1824fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown 1924fa6c0dd42df057729e1a258388183f94da7f82Jeff Brownimport android.media.VolumeProvider; 2024fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown 2124fa6c0dd42df057729e1a258388183f94da7f82Jeff Brownclass VolumeProviderCompatApi21 { 22e0c3fd8d5c24c7e8bcc54234f30c01e78137b67eRoboErik public static Object createVolumeProvider(int volumeControl, int maxVolume, int currentVolume, 2324fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown final Delegate delegate) { 24e0c3fd8d5c24c7e8bcc54234f30c01e78137b67eRoboErik return new VolumeProvider(volumeControl, maxVolume, currentVolume) { 2524fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown @Override 2624fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown public void onSetVolumeTo(int volume) { 2724fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown delegate.onSetVolumeTo(volume); 2824fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown } 2924fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown 3024fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown @Override 31ead061ff8567599fa905a1ee1de2532b7050d7faRoboErik public void onAdjustVolume(int direction) { 32ead061ff8567599fa905a1ee1de2532b7050d7faRoboErik delegate.onAdjustVolume(direction); 3324fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown } 3424fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown }; 3524fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown } 3624fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown 37e0c3fd8d5c24c7e8bcc54234f30c01e78137b67eRoboErik public static void setCurrentVolume(Object volumeProviderObj, int currentVolume) { 38e0c3fd8d5c24c7e8bcc54234f30c01e78137b67eRoboErik ((VolumeProvider) volumeProviderObj).setCurrentVolume(currentVolume); 3924fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown } 4024fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown 4124fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown public interface Delegate { 4224fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown void onSetVolumeTo(int volume); 43ead061ff8567599fa905a1ee1de2532b7050d7faRoboErik void onAdjustVolume(int delta); 4424fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown } 4524fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown} 46