package org.wordpress.android.ui.posts; import java.util.ArrayList; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.content.res.Configuration; import android.os.Bundle; import android.text.Html; import android.view.View; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.Spinner; import com.justsystems.hpb.pad.R; import org.wordpress.android.WordPress; import org.wordpress.android.models.CategoryNode; public class AddCategoryActivity extends Activity { private int id; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.add_category); Bundle extras = getIntent().getExtras(); if (extras != null) { id = extras.getInt("id"); } loadCategories(); final Button cancelButton = (Button) findViewById(R.id.cancel); final Button okButton = (Button) findViewById(R.id.ok); okButton.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { EditText categoryNameET = (EditText) findViewById(R.id.category_name); String category_name = categoryNameET.getText().toString(); EditText categorySlugET = (EditText) findViewById(R.id.category_slug); String category_slug = categorySlugET.getText().toString(); EditText categoryDescET = (EditText) findViewById(R.id.category_desc); String category_desc = categoryDescET.getText().toString(); Spinner sCategories = (Spinner) findViewById(R.id.parent_category); String parent_category = ""; if (sCategories.getSelectedItem() != null) parent_category = sCategories.getSelectedItem().toString() .trim(); int parent_id = 0; if (sCategories.getSelectedItemPosition() != 0) { parent_id = WordPress.wpDB.getCategoryId(id, parent_category); } if (category_name.replaceAll(" ", "").equals("")) { // Name field cannot be empty AlertDialog.Builder dialogBuilder = new AlertDialog.Builder( AddCategoryActivity.this); dialogBuilder.setTitle(getResources().getText( R.string.required_field)); dialogBuilder.setMessage(getResources().getText( R.string.cat_name_required)); dialogBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { // Just close the window. } }); dialogBuilder.setCancelable(true); dialogBuilder.create().show(); } else { Bundle bundle = new Bundle(); bundle.putString("category_name", category_name); bundle.putString("category_slug", category_slug); bundle.putString("category_desc", category_desc); bundle.putInt("parent_id", parent_id); bundle.putString("continue", "TRUE"); Intent mIntent = new Intent(); mIntent.putExtras(bundle); setResult(RESULT_OK, mIntent); finish(); } } }); cancelButton.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { Bundle bundle = new Bundle(); bundle.putString("continue", "FALSE"); Intent mIntent = new Intent(); mIntent.putExtras(bundle); setResult(RESULT_OK, mIntent); finish(); } }); } private void loadCategories() { ArrayList<CharSequence> loadTextArray = new ArrayList<CharSequence>(); CategoryNode rootCategory = CategoryNode.createCategoryTreeFromDB(id); ArrayList<CategoryNode> categoryLevels = CategoryNode .getSortedListOfCategoriesFromRoot(rootCategory); if (categoryLevels.size() > 0) { loadTextArray.add(getResources().getText(R.string.none)); for (int i = 0; i < categoryLevels.size(); i++) { CategoryNode currentCategory = categoryLevels.get(i); String name = ""; for (int j = 1; j < currentCategory.getLevel(); j++) { name += " "; } name += Html.fromHtml(currentCategory.getName()); loadTextArray.add(name); } ArrayAdapter<CharSequence> categories = new ArrayAdapter<CharSequence>( this, android.R.layout.simple_dropdown_item_1line, loadTextArray); categories .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); Spinner sCategories = (Spinner) findViewById(R.id.parent_category); sCategories.setAdapter(categories); } } @Override public void onConfigurationChanged(Configuration newConfig) { //ignore orientation change super.onConfigurationChanged(newConfig); } }