package com.robert.maps.applib.kml; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.ImageView; import android.widget.Toast; import com.robert.maps.applib.R; import com.robert.maps.applib.kml.constants.PoiConstants; public class PoiCategoryActivity extends Activity implements PoiConstants { EditText mTitle; CheckBox mHidden; ImageView mIcon; EditText mMinZoom; private PoiCategory mPoiCategory; private PoiManager mPoiManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.poicategory); if(mPoiManager == null) mPoiManager = new PoiManager(this); mTitle = (EditText) findViewById(R.id.Title); mHidden = (CheckBox) findViewById(R.id.Hidden); mIcon = (ImageView) findViewById(R.id.ImageIcon); mMinZoom = (EditText) findViewById(R.id.MinZoom); Bundle extras = getIntent().getExtras(); if(extras == null) extras = new Bundle(); int id = extras.getInt("id", PoiPoint.EMPTY_ID()); if(id < 0){ mPoiCategory = new PoiCategory(); mTitle.setText(extras.getString("title")); mHidden.setChecked(false); mIcon.setImageResource(mPoiCategory.IconId); mMinZoom.setText("14"); } else { mPoiCategory = mPoiManager.getPoiCategory(id); if(mPoiCategory == null) finish(); mTitle.setText(mPoiCategory.Title); mHidden.setChecked(mPoiCategory.Hidden); mIcon.setImageResource(mPoiCategory.IconId); mMinZoom.setText(Integer.toString(mPoiCategory.MinZoom)); } ((Button) findViewById(R.id.saveButton)) .setOnClickListener(new OnClickListener() { public void onClick(View v) { doSaveAction(); } }); ((Button) findViewById(R.id.discardButton)) .setOnClickListener(new OnClickListener() { public void onClick(View v) { PoiCategoryActivity.this.finish(); } }); mIcon.setOnClickListener(new OnClickListener() { public void onClick(View v) { doSelectIcon(); } }); } @Override protected void onDestroy() { super.onDestroy(); mPoiManager.FreeDatabases(); } protected void doSelectIcon() { startActivityForResult(new Intent(this, PoiIconSetActivity.class), R.id.ImageIcon); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_BACK: { doSaveAction(); return true; } } return super.onKeyDown(keyCode, event); } private void doSaveAction() { mPoiCategory.Title = mTitle.getText().toString(); mPoiCategory.Hidden = mHidden.isChecked(); mPoiCategory.MinZoom = Integer.parseInt(mMinZoom.getText().toString()); mPoiManager.updatePoiCategory(mPoiCategory); finish(); Toast.makeText(this, R.string.message_saved, Toast.LENGTH_SHORT).show(); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if(resultCode == RESULT_OK){ mPoiCategory.IconId = data.getIntExtra("iconid", R.drawable.poi); mIcon.setImageResource(mPoiCategory.IconId); } super.onActivityResult(requestCode, resultCode, data); } }