package net.osmand.access;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import android.app.Activity;
import android.media.AudioManager;
import android.media.SoundPool;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.R;
import net.osmand.plus.activities.MapActivity;
public class AccessibilityPlugin extends OsmandPlugin {
public static final int DIRECTION_NOTIFICATION = 1;
public static final int INCLINATION_LEFT = 2;
public static final int INCLINATION_RIGHT = 3;
private static final String ID = "osmand.accessibility";
private OsmandApplication app;
private SoundPool sounds;
private Map<Integer, Integer> soundIcons = new HashMap<Integer, Integer>();
public AccessibilityPlugin(OsmandApplication app) {
this.app = app;
}
@Override
public boolean init(final OsmandApplication app, Activity activity) {
sounds = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);
if (sounds != null) {
soundIcons.put(DIRECTION_NOTIFICATION, loadSoundIcon("sounds/direction_notification.ogg"));
soundIcons.put(INCLINATION_LEFT, loadSoundIcon("sounds/inclination_left.ogg"));
soundIcons.put(INCLINATION_RIGHT, loadSoundIcon("sounds/inclination_right.ogg"));
}
return true;
}
@Override
public String getId() {
return ID;
}
@Override
public String getDescription() {
return app.getString(R.string.osmand_accessibility_description);
}
@Override
public String getName() {
return app.getString(R.string.shared_string_accessibility);
}
@Override
public void registerLayers(MapActivity activity) {
}
@Override
public Class<? extends Activity> getSettingsActivity() {
return SettingsAccessibilityActivity.class;
}
@Override
public void disable(OsmandApplication app) {
if (sounds != null) {
sounds.release();
sounds = null;
}
}
@Override
public int getAssetResourceName() {
return 0;
}
@Override
public int getLogoResourceId() {
return R.drawable.ic_plugin_accessibility;
}
public void playSoundIcon(int iconId) {
if ((sounds != null) && soundIcons.containsKey(iconId)) {
int sound = soundIcons.get(iconId);
if (sound != 0)
sounds.play(sound, 1.0f, 1.0f, 0, 0, 1.0f);
}
}
private int loadSoundIcon(String path) {
try {
return sounds.load(app.getAssets().openFd(path), 1);
} catch (IOException e) {
return 0;
}
}
}