package org.wheelmap.android.utils;
import org.wheelmap.android.activity.MapActivity;
import org.wheelmap.android.adapter.WheelchairStateSelectAdapter;
import org.wheelmap.android.manager.SupportManager;
import org.wheelmap.android.model.WheelchairFilterState;
import org.wheelmap.android.online.R;
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.LayerDrawable;
import android.preference.PreferenceManager;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
public class MapActivityUtils {
public static void setAccessFilterOptionDrawable(MapActivity context, MenuItem item, View v) {
SharedPreferences mPrefs = PreferenceManager.getDefaultSharedPreferences(context);
Map<WheelchairFilterState, SupportManager.WheelchairAttributes> attributes = SupportManager.wsAttributes;
Resources r = context.getResources();
List<Drawable> layers = new LinkedList<Drawable>();
layers.add(r.getDrawable(R.drawable.ic_status));
if (mPrefs.getBoolean(attributes.get(WheelchairFilterState.YES).prefsKey, true)) {
layers.add(r.getDrawable(R.drawable.ic_status_green));
}
if(mPrefs.getBoolean(attributes.get(WheelchairFilterState.LIMITED).prefsKey, true)){
layers.add(r.getDrawable(R.drawable.ic_status_orange));
}
if (mPrefs.getBoolean(attributes.get(WheelchairFilterState.NO).prefsKey, true)) {
layers.add(r.getDrawable(R.drawable.ic_status_red));
}
if (mPrefs.getBoolean(attributes.get(WheelchairFilterState.UNKNOWN).prefsKey, true)) {
layers.add(r.getDrawable(R.drawable.ic_status_grey));
}
LayerDrawable layerDrawable = new LayerDrawable(layers.toArray(new Drawable[layers.size()]));
if(v != null && v instanceof ImageView){
((ImageView)v).setImageDrawable(layerDrawable);
}
setOptionsItemLayerDrawable(context, item, layerDrawable);
}
public static void setWcFilterOptionsDrawable(MapActivity context, MenuItem item, View v) {
SharedPreferences mPrefs = PreferenceManager.getDefaultSharedPreferences(context);
Map<WheelchairFilterState, SupportManager.WheelchairToiletAttributes> attributes = SupportManager.wheelchairToiletAttributes;
Resources r = context.getResources();
List<Drawable> layers = new LinkedList<Drawable>();
layers.add(r.getDrawable(R.drawable.ic_wc));
if (mPrefs.getBoolean(attributes.get(WheelchairFilterState.TOILET_YES).prefsKey, true)) {
layers.add(r.getDrawable(R.drawable.ic_wc_green));
}
if (mPrefs.getBoolean(attributes.get(WheelchairFilterState.TOILET_NO).prefsKey, true)) {
layers.add(r.getDrawable(R.drawable.ic_wc_red));
}
if (mPrefs.getBoolean(attributes.get(WheelchairFilterState.TOILET_UNKNOWN).prefsKey, true)) {
layers.add(r.getDrawable(R.drawable.ic_wc_grey));
}
LayerDrawable layerDrawable = new LayerDrawable(layers.toArray(new Drawable[layers.size()]));
if(v != null && v instanceof ImageView){
((ImageView)v).setImageDrawable(layerDrawable);
}
setOptionsItemLayerDrawable(context, item, layerDrawable);
}
private static void setOptionsItemLayerDrawable(final MapActivity context, final MenuItem item, LayerDrawable layerDrawable){
if(item != null){
ImageView image;
if(item.getActionView() != null){
image = (ImageView) item.getActionView();
image.setImageDrawable(layerDrawable);
}else{
image = new ImageView(context);
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
image.setLayoutParams(params);
image.setPadding(5, 5, 5, 5);
image.setImageDrawable(layerDrawable);
image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
context.onOptionsItemSelected(item);
}
});
item.setActionView(image);
}
}
}
public static void setWheelchairFilterToEngageMode(final MapActivity context) {
SharedPreferences mPrefs = PreferenceManager.getDefaultSharedPreferences(context);
Map<WheelchairFilterState, SupportManager.WheelchairAttributes> attributes = SupportManager.wsAttributes;
mPrefs.getBoolean(attributes.get(WheelchairFilterState.YES).prefsKey, true);
SharedPreferences.Editor editor = mPrefs.edit();
editor.putBoolean(attributes.get(WheelchairFilterState.YES).prefsKey, false);
editor.putBoolean(attributes.get(WheelchairFilterState.NO).prefsKey, false);
editor.putBoolean(attributes.get(WheelchairFilterState.LIMITED).prefsKey, false);
editor.putBoolean(attributes.get(WheelchairFilterState.UNKNOWN).prefsKey, true);
editor.commit();
}
public static void resetWheelchairFilter(final MapActivity context) {
SharedPreferences mPrefs = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = mPrefs.edit();
final WheelchairStateSelectAdapter adapter = new WheelchairStateSelectAdapter(context);
for(int i=0;i<adapter.getCount();i++){
final int pos = i;
SupportManager.WheelchairAttributes item = (SupportManager.WheelchairAttributes)adapter.getItem(pos);
editor.putBoolean(item.prefsKey, true);
}
editor.commit();
}
}