package com.droidworks.misc;
import android.content.ComponentName;
import android.media.AudioManager;
import android.os.Build;
@Deprecated
public abstract class MediaButtonManager {
public abstract void register(AudioManager audioManager, ComponentName component);
public abstract void unregister(AudioManager audioManager, ComponentName component);
public static MediaButtonManager getInstance() {
if (Integer.parseInt(Build.VERSION.SDK) <= 7) {
return PreFroyo.Holder.sInstance;
}
else {
return FroyoAndBeyond.Holder.sInstance;
}
}
private static class PreFroyo extends MediaButtonManager {
private static class Holder {
private static final PreFroyo sInstance = new PreFroyo();
}
@Override
public void register(AudioManager audioManager, ComponentName component) {
// do nothing
}
@Override
public void unregister(AudioManager audioManager, ComponentName component) {
// do nothing
}
}
private static class FroyoAndBeyond extends MediaButtonManager {
private static class Holder {
private static final FroyoAndBeyond sInstance = new FroyoAndBeyond();
}
@Override
public void register(AudioManager audioManager, ComponentName component) {
audioManager.registerMediaButtonEventReceiver(component);
}
@Override
public void unregister(AudioManager audioManager, ComponentName component) {
audioManager.unregisterMediaButtonEventReceiver(component);
}
}
}