package org.music.player;
import android.annotation.TargetApi;
import android.app.backup.BackupManager;
import android.content.ComponentName;
import android.content.Context;
import android.media.AudioManager;
import android.view.VelocityTracker;
import android.view.ViewConfiguration;
/**
* Framework methods only in Froyo or above go here.
*/
@TargetApi(8)
public class CompatFroyo implements AudioManager.OnAudioFocusChangeListener {
/**
* Instance of the audio focus listener created by {@link #createAudioFocus()}.
*/
private static CompatFroyo sAudioFocus;
/**
* Calls {@link AudioManager#registerMediaButtonEventReceiver(ComponentName)}.
*/
public static void registerMediaButtonEventReceiver(AudioManager manager, ComponentName receiver)
{
manager.registerMediaButtonEventReceiver(receiver);
}
/**
* Calls {@link AudioManager#unregisterMediaButtonEventReceiver(ComponentName)}.
*/
public static void unregisterMediaButtonEventReceiver(AudioManager manager, ComponentName receiver)
{
manager.unregisterMediaButtonEventReceiver(receiver);
}
/**
* Calls {@link BackupManager#dataChanged()}.
*/
public static void dataChanged(Context context)
{
new BackupManager(context).dataChanged();
}
/**
* Creates an audio focus listener that calls back to {@link PlaybackService#onAudioFocusChange(int)}.
*/
public static void createAudioFocus()
{
sAudioFocus = new CompatFroyo();
}
/**
* Calls {@link AudioManager#requestAudioFocus(AudioManager.OnAudioFocusChangeListener, int, int)}
*/
public static void requestAudioFocus(AudioManager manager)
{
manager.requestAudioFocus(sAudioFocus, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
}
@Override
public void onAudioFocusChange(int type)
{
PlaybackService service = PlaybackService.sInstance;
if (service != null) {
service.onAudioFocusChange(type);
}
}
/**
* Calls {@link VelocityTracker#getYVelocity(int)}.
*/
public static float getYVelocity(VelocityTracker tracker, int id)
{
return tracker.getYVelocity(id);
}
/**
* Calls {@link VelocityTracker#getXVelocity(int)}.
*/
public static float getXVelocity(VelocityTracker tracker, int id)
{
return tracker.getXVelocity(id);
}
/**
* Calls {@link ViewConfiguration#getScaledPagingTouchSlop()}.
*/
public static int getScaledPagingTouchSlop(ViewConfiguration config)
{
return config.getScaledPagingTouchSlop();
}
}