// Created by plusminus on 14:12:34 - 16.11.2008
package org.androad.ui.sd;
import java.util.HashMap;
import org.androad.R;
import org.androad.adt.UnitSystem;
import org.androad.preferences.Preferences;
import org.androad.sys.ors.adt.ds.OSMRepresentation;
import org.androad.ui.common.activities.BasePOICategorySelectionActivity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.view.View;
import android.widget.ExpandableListView;
import android.widget.ExpandableListView.OnChildClickListener;
public class SDPOICategories extends BasePOICategorySelectionActivity {
// ===========================================================
// Constants
// ===========================================================
// ===========================================================
// Fields
// ===========================================================
// ===========================================================
// Constructors
// ===========================================================
// ===========================================================
// Getter & Setter
// ===========================================================
// ===========================================================
// Methods from SuperClass/Interfaces
// ===========================================================
@Override
protected Dialog onCreateDialog(final int id) {
return null;
}
@Override
protected OSMRepresentation onGetMustMatchOSMRepresentationFilter() {
return null;
}
@Override
protected OnChildClickListener onCreateOnChildClickListener() {
return new OnChildClickListener(){
@SuppressWarnings("unchecked")
@Override
public boolean onChildClick(final ExpandableListView parent, final View v, final int groupPosition, final int childPosition, final long id) {
final HashMap<String, String> map = (HashMap<String, String>)SDPOICategories.this.mExpListAdapter.getChild(groupPosition, childPosition);
final String poiTypeRawName = map.get(KEY_SUBTYPERAWNAME);
final UnitSystem us = Preferences.getUnitSystem(SDPOICategories.this);
final int[] valDist;
switch(us){
case IMPERIAL:
valDist = getResources().getIntArray(R.array.poi_search_radius_ors_imperial);
break;
case METRIC:
default:
valDist = getResources().getIntArray(R.array.poi_search_radius_ors_metric);
}
final String[] valStr = new String[valDist.length];
for (int i = 0; i < valDist.length; i++){
final int cur = valDist[i];
if(cur == SDPOISearchList.POISEARCH_RADIUS_GLOBAL){
valStr[i] = getString(R.string.poi_search_radius_global);
}else{
final String[] distStringParts = us.getDistanceString(cur, null);
valStr[i] = distStringParts[UnitSystem.DISTSTRINGS_DIST_ID] + distStringParts[UnitSystem.DISTSTRINGS_UNIT_ID];
}
}
new AlertDialog.Builder(SDPOICategories.this)
.setTitle(R.string.choose_search_radius)
.setSingleChoiceItems(valStr, 3, new DialogInterface.OnClickListener(){
@Override
public void onClick(final DialogInterface d, final int which) {
d.dismiss();
final Intent favIntent = new Intent(SDPOICategories.this, SDPOISearchList.class);
SDPOICategories.this.bundleCreatedWith.putInt(SDPOISearchList.EXTRAS_POISEARCH_MODE, SDPOISearchList.EXTRAS_POISEARCH_MODE_ORS_CATEGORY_SEARCH);
SDPOICategories.this.bundleCreatedWith.putInt(SDPOISearchList.EXTRAS_POISEARCH_RADIUS, valDist[which]);
SDPOICategories.this.bundleCreatedWith.putString(SDPOISearchList.EXTRAS_POISEARCH_CATEGORY, poiTypeRawName);
favIntent.putExtras(SDPOICategories.this.bundleCreatedWith);
SDPOICategories.this.startActivityForResult(favIntent, REQUESTCODE_SD_POISEARCHLIST);
}
}).create().show();
return true;
}
};
}
// ===========================================================
// Methods
// ===========================================================
// ===========================================================
// Inner and Anonymous Classes
// ===========================================================
}